当前位置: 代码迷 >> WinCE >> directshow创设MPEG1 Splitter失败
  详细解决方案

directshow创设MPEG1 Splitter失败

热度:17   发布时间:2016-04-28 12:18:37.0
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
  相关解决方案