上代码:
int main()
{
flag = true;
_beginthread(ThreadProcessVideo,0, this );
}
void ThreadProcessVideo(LPVOID Para)
{
CFace1Dlg*Dlg = (CFace1Dlg*)Para;
cvNamedWindow(VideoName,0);//申请可以自动调节大小的窗口Example1
CvCapture *capture=cvCreateFileCapture(VideoName);//读取avi格式的影片
while(flag)
{
proVideo = cvQueryFrame(capture);//读取下一个影片帧率
//GetFilm(processphoto, processphoto);
if(!proVideo)
break;
char c=cvWaitKey(20); //每读取一个视频片度就停止33毫秒,并且会收集键盘的输入
if(c == 27||PlayFlag == FALSE)
{
break;//27就是对应键盘上的ESC建,如果没有按键盘的话C为-1
}
cvShowImage(VideoName, proVideo);
}
// cvReleaseImage(&proVideo);
cvDestroyWindow(VideoName);
cvReleaseCapture(&capture);
_endthread();
}
_beginthread函数开启线程,可以传入任何指针。用全局变量控制线程是否跳出。