我正在尝试通过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")
}
答案 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();