增加控制条到视频播放

 1 #include "stdafx.h"
 2 #include "highgui.h"
 3 int g_slider_position = 0;
 4 CvCapture* g_capture = NULL;
 5 void onTrackbarSlide(int pos)
 6 {
 7     cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES,pos);
 8 }
 9 
10 int main()
11 {
12     cvNamedWindow("Test Vedio Slide",CV_WINDOW_AUTOSIZE);
13     g_capture = cvCreateFileCapture("test.avi");
14     int frames = (int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);
15     int frameRate = (int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FPS);
16 
17     if(frames!=0)
18     {
19         cvCreateTrackbar("position","Test Vedio Slide", &g_slider_position, frames, onTrackbarSlide);
20     }
21     IplImage* frame;
22     for(g_slider_position = 0;g_slider_position<frames;g_slider_position++)
23     {
24         frame = cvQueryFrame(g_capture);
25         if(!frame)
26             break;
27         cvShowImage("Test Vedio Slide", frame);
28         char c = cvWaitKey(frameRate);
29         cvSetTrackbarPos("position","Test Vedio Slide", g_slider_position);
30         onTrackbarSlide(g_slider_position);
31         if(c == 27)
32             break;
33     }
34     cvReleaseCapture(&g_capture);
35     cvDestroyWindow("Test Vedio Slide");
36 }
posted @ 2012-05-29 19:25  Epirus  阅读(203)  评论(0编辑  收藏  举报