首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

directshow创设MPEG1 Splitter失败

2013-09-05 
directshow创建MPEG1 Splitter失败在directshow中,使用CoCreateInstance创建MPEG1 Splitter失败。在程序的

directshow创建MPEG1 Splitter失败
在directshow中,使用CoCreateInstance创建MPEG1 Splitter失败。
在程序的开始部分已经用CoInitialize初始化,,结束的时候也已经用UnCoInitialize()。在VS2008下开发,使用windows mobile6模拟器进行测试。代码如下:
void CMedia::Decoder( CString m_Mp3File, CString m_AuFile )
{

    HRESULT hr;
//IGraphBuilder *pGB   = NULL;
    hr=CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,IID_IGraphBuilder, (void **)&m_pGB);

    if ( FAILED(hr)) return;

    IPin* pin = NULL;
    IPin* pOut = NULL;

// Have the graph builder construct its the appropriate graph automatically
//hr=pGB->RenderFile(m_Mp3File.AllocSysString(), NULL);
hr = CoCreateInstance(CLSID_AsyncReader, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pFileReader);
if (FAILED(hr))        return;

//MPEG-1 Filter
hr = CoCreateInstance(CLSID_MPEG1Splitter, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pMpeg1Stream);
if (FAILED(hr))        return;

//Mp3 Filter
hr = CoCreateInstance(CLSID_Layer3Decoder, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pMp3Decoder);
if (FAILED(hr))        return;

//Wave Dest Filter
hr = CoCreateInstance(CLSID_WavDest, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pWaveDest);
。。。。。
到//MPEG-1 Filter
hr = CoCreateInstance(CLSID_MPEG1Splitter, NULL, CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pMpeg1Stream);这步的时候,hr返回值为0X80040154|没有注册类。。。但是在注册表和graphedit中都查找到CLSID_MPEG1Splitter有注册信息?求问大神这是个什么原因?该怎么解决呢?
[解决办法]
因为没有这个 filter

热点排行