Directshow捕获到文件,没有任何反应

时间:2016-09-10 13:39:51

标签: c++ webcam directshow video-capture avi

我正在尝试通过Windows开发中心的DirectShow示例来制作我自己的应用程序,可以捕获屏幕和音频到视频:Capturing Video to an AVI File

所有代码都正常但没有任何反应,avi文件没有出现。网络摄像头连接我可以看到流与AMCap。在代码中凸轮出现正确的文件名。安装了Windows SDK,我的平台是win7 x64。

我的代码:

  Try({
    throw new Exception()
  }) match {
    case Failure(e) => println("I've failed")
    case Success(s) => println("I've succeeded")
  }

1 个答案:

答案 0 :(得分:2)

您的代码枚举设备(来源),构建文件记录管道,然后删除所有内容并前进到下一个设备。

代码不应该进行实际录制。

这是一个最小的缺失部分(DisplayDeviceInformation的底部):

    IConfigInterleaving *pInterleave = NULL;
    hr = pMux->QueryInterface(IID_IConfigInterleaving, (void**)&pInterleave);
    if (SUCCEEDED(hr))
    {
        pInterleave->put_Mode(INTERLEAVE_CAPTURE);
        pInterleave->Release();
    }

    ///////////////////////////////////////////////////
    // Added
    IMediaControl* pMediaControl;
    ppGraph->QueryInterface(&pMediaControl);
    pMediaControl->Run();
    Sleep(5000);
    pMediaControl->Stop();
    ///////////////////////////////////////////////////

    pPropBag->Release();
    pMoniker->Release();