|
不知道有没有大神用DirectShow做过视频播放,我最近在做这个,用的是VMR9制作一个能播放.rmvb,.avi,.mp4的播放小程序用来在游戏开头播放个动画。但是现在遇到了点问题全屏播放,只有声音,没有图像,我网上MSDN找了好多帖子都没找到解决方案,希望有懂的大神指点一二,下面是源代码。
IGraphBuilder* pGraph = NULL;
IMediaControl* pControl = NULL;
IBaseFilter* pVMR9 = NULL;
IVMRFilterConfig9* pVMR9Config = NULL;
ICaptureGraphBuilder2* pCapture = NULL;
IVMRWindowlessControl9* pVMR9Control = NULL;
CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,
IID_IGraphBuilder,(void**)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
CoCreateInstance(CLSID_VideoMixingRenderer9, NULL, CLSCTX_INPROC, IID_IBaseFilter, (VOID**)&pVMR9);
pGraph->AddFilter(pVMR9, L"Video Mixing Renderer 9");
pVMR9->QueryInterface(IID_IVMRFilterConfig9,(void**)&pVMR9Config);
pVMR9Config->SetRenderingMode(VMR9Mode_Windowless);
pVMR9->QueryInterface(IID_IVMRWindowlessControl9, (VOID**)&pVMR9Control);
pVMR9Control->SetVideoClippingWindow(hwnd);
RECT *clientRect = new RECT;
GetClientRect(hwnd, clientRect );
pVMR9Control->SetVideoPosition(NULL,clientRect);
pGraph->RenderFile(L"aaa.mp4",NULL);
pControl->Run();
|
|