0

我正在尝试编写一个传输视频然后播放它的应用程序。但一开始我试图打开视频并播放它,但我遇到了麻烦。这是我的代码:

VideoPlayer::Play()
{
CvCapture *capture = cvCreateFileCapture(m_FileName.c_str());
    IplImage* frame = cvQueryFrame(capture);

    int frame_number = 0;

     cvNamedWindow("stream_server", CV_WINDOW_AUTOSIZE);


    while (true)
    {
        if (!frame)
        {
            std::cout << "Failed\n";
            break;
        }

        cvShowImage("stream_server", frame);


        ++frame_number;
        frame = cvQueryFrame(capture);

    }

    cvReleaseCapture(&capture);
}

事情是 - 当我运行这个程序时,我看到 videoWindows 出现但它显示灰色屏幕并挂起沙钟。

你能帮我吗?

4

1 回答 1

1

您需要调用waitKey才能更新窗口。如果用户按下字母“c”,这将停止:

int c = waitKey(10);
if( (char)c == 'c' ) { break; }
于 2012-12-05T22:24:26.830 回答