游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2838|回复: 1

DirectShow VMR9 全屏播放遇到的问题

[复制链接]

3

主题

6

帖子

31

积分

注册会员

Rank: 2

积分
31
发表于 2013-7-20 21:05:44 | 显示全部楼层 |阅读模式
不知道有没有大神用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();



3

主题

6

帖子

31

积分

注册会员

Rank: 2

积分
31
 楼主| 发表于 2013-7-20 21:06:04 | 显示全部楼层
希望有好心人能帮一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-26 14:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表