DirectShow 语音采集 播放 写入文件问题
看网上的资料有的是用IGraphBuilder 来处理:
ConnectDirect
pSink->SetFileName(L"c://test1.avi", NULL);
有的是还要加ICaptureGraphBuilder2:
hr = m_pCaptureGB->SetOutputFileName(&MEDIASUBTYPE_Asf, L"C:\\1.asf", &pWriter, NULL);
RenderStream
总之看到的都是不一样的,
还有的IConfigAsfWriter IID_IConfigAsfWriter根本找不到定义,
这些都是怎么回事??
感觉挺乱的……
DirectShow 要如何开发??
[解决办法]
IGraphBuilder是用来手动连接各个Filter,控制自定义Filter的,pSink应该是从Filter上拿到的接口,通过接口进行设置参数的。
ICaptureGraphBuilder2可以用来建立采集捕获视频、音频的Graph,侧重于Capture,同时也能管理IGraphBuilder完成一些操作。
具体的区别还是参考MSDN吧。
至于IConfigAsfWriter,估计是头文件没引用吧,试试#include<Dshowasf.h>