利用DirectShow播放标准格式文件范例

    技术2022-05-20  38

     

    #include  《windows.h 》

    #include  《 Dshow.h 

     

    #pragma comment(lib,"Strmiids.lib")

    #pragma comment(lib,"Quartz.lib")

     

     

    void main()

    {

           //调用CoInitialize()初始化COM

           HRESULT hr = CoInitialize(NULL);

           if (FAILED(hr))

           {

                  // Add error-handling code here. (Omitted for clarity.)

           }

     

     

           //创建Filter Graph Manager

           IGraphBuilder *pGraph;

           hr = CoCreateInstance(CLSID_FilterGraph /*类标识符*/,

                                                     NULL,

                                                     CLSCTX_INPROC_SERVER,

                                                     IID_IGraphBuilder/*接口标识符*/,

                                                     (void **)&pGraph

                                                     );

     

           IMediaControl *pControl;            //停止和启动

           IMediaEvent   *pEvent;                   //等待播放完毕

           hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);

           hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);

     

     

           //准备媒体文件

           hr = pGraph->RenderFile(L"D://work//0025_LO.MPG", NULL);

     

           //播放

           hr = pControl->Run();

     

           //直到结束

           long evCode = 0;

           pEvent->WaitForCompletion(INFINITE, &evCode);

     

           //恢复

           pControl->Release();

           pEvent->Release();

           pGraph->Release();

           CoUninitialize();

    }

     


    最新回复(0)