#include <highgui.h>int g_sliderPosition = 0; // start positionCvCapture* g_capture = NULL;void OnTrackbarSlide (int pos){ cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES, pos);}int main (int args, char** argv){ cvNamedWindow("Example3", CV_WINDOW_AUTOSIZE); if (args == 2 && (g_capture = cvCreateFileCapture(argv[1])) != NULL) { int frameNum = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT); if (frameNum) cvCreateTrackbar("position", "Example3", &g_sliderPosition, frameNum, OnTrackbarSlide); IplImage* frame; while (1) { frame = cvQueryFrame(g_capture); if (frame == NULL) break; cvShowImage("Example3", frame); char c = cvWaitKey(33); // wait for 33ns if (c == 27) // Esc break; } cvReleaseCapture(&g_capture); cvDestroyWindow("Example3"); return 0; } else return -1;}
运行时没有问题,但是如果将滚动条拖到接近末尾的地方(只是接近末尾,还没有达到末尾),建立的播放窗口就关闭了,然后在控制台窗口中有如下提示: HIGHGUI ERROR: AVI: could not seek to position 0.003 请问这是怎么一回事?为什么会有这个ERROR,它在什么情况下产生?而且为什么是0.003(有时候是出现多条提示,但是都是0.003)?希望有朋友可以具体解释其原因,谢谢了~