本人在做directshow视频播放器,在做的过程中,发现视频一直播放不了,而其他人的实例去可以播放!通过调试,发现 CoCreateInstance 一直返回false!
查了网上资料,发现缺少初始化:
首先,需要调用CoInitialize来作初始化,然后调用CoCreateInstance创建Filter Graph Manager
CDXGraph::CDXGraph()
{
mGraph = NULL;
mMediaControl = NULL;
mEvent = NULL;
mBasicVideo = NULL;
mBasicAudio = NULL;
mVideoWindow = NULL;
mSeeking = NULL;
mObjectTableEntry = 0;
/************************************************************************/
/* 需要调用CoInitialize来作初始化,然后调用CoCreateInstance创建Filter Graph Manager */
/************************************************************************/
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
{
return;
}
}
再一次,保存,运行 实现视频播放!