suc=capCaptureSequence(dlg->hWndCap);
dlg->isRecording = true;
// don't exit the thread until the record button is pressed again
::ResetEvent(dlg->threadEndEvent);
while(WaitForSingleObject(dlg->threadEndEvent,1000)!=WAIT_OBJECT_0)
{
;
}
这段代码为什么一执行,它会丢掉帧数呢》???并且会跳出来

解决方案 »

  1.   

    你在哪里捕捉视频的?下面这句:
    while(WaitForSingleObject(dlg->threadEndEvent,1000)!=WAIT_OBJECT_0)
    {
    ;
    }
    是什么目的?
    如果是为了等待dlg->threadEndEvent的信号产生,应该用:
    while(WaitForSingleObject(dlg->threadEndEvent, INFINITE)!=WAIT_OBJECT_0);
      

  2.   

    我在录制按钮中设了个线程。来捕捉视频的。我在按录制时,变成“停止”时,它就会丢掉帧数。还有就是在不按录制按钮时,点其它地方。录制就会结束。不知道为什么??帮忙看看,谢谢了
    SetWindowText(dlg->m_recordbtn.GetSafeHwnd(), "停止");
    // capture the video
    suc=capCaptureSequence(dlg->hWndCap);
    dlg->isRecording = true;
    // don't exit the thread until the record button is pressed again
    ::ResetEvent(dlg->threadEndEvent);
    while(WaitForSingleObject(dlg->threadEndEvent,1000)!=WAIT_OBJECT_0)
    {
    ;
    }