我要在vc中用控伯播放一个mpg文件,但是那用来播放动画的控件好像不行, 还有其它的方法没??

解决方案 »

  1.   

    //用DirectShow,下面是微软的例子
    #include <dshow.h>    IGraphBuilder *pGraph;
        IMediaControl *pMediaControl;
        IMediaEvent   *pEvent;
    IVideoWindow *piWindow;
        CoInitialize(NULL);
        
        // Create the filter graph manager and query for interfaces.
        CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, 
                            IID_IGraphBuilder, (void **)&pGraph);
        pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
        pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
        pGraph->QueryInterface(IID_IVideoWindow, (void **)&piWindow);    // Build the graph. IMPORTANT: Change string to a file on your system.
        pGraph->RenderFile(L"C:\\Example.mpeg", NULL); // Set the video window.
    piWindow->put_Owner((OAHWND)GetSafeHwnd()); 
    piWindow->put_WindowStyle(WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS); 
        // Run the graph.
        pMediaControl->Run();    // Wait for completion. 
        long evCode;
        pEvent->WaitForCompletion(INFINITE, &evCode);    // Clean up.
        pMediaControl->Release();
        pEvent->Release();scorpion
        pGraph->Release();
        CoUninitialize();