人气 207

[游戏程序] 游戏中的dshow媒体播放-即学即会-详细注释 [复制链接]

九艺网 2017-3-10 17:01:07

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
1。简单地播放文件
#include
#pragma comment (lib,"Ole32.lib")
#pragma comment (lib,"Strmiids.lib")
#define FILENAME L"C:\\Documents and Settings\\vs6\\桌面\\temp\\FL5007822001-500-2.avi"
bool g_bExit=false; //this APP will be exited when g_bExit=TURE
#define ture (bool)-1
int main()
{
IGraphBuilder *pGraphBuilder; //这是directshow的核心
IMediaControl *pMediaControl; //帮我们连接filter(媒体文件,解码器等)          //简单的说,它帮我们简单地打开和播放文件.
IVideoWindow *pVideoWindow; //用这个来控制directshow的视频窗口
//COM初始化
CoInitialize(NULL);
//建立FilterGraph
CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC,IID_IGraphBuilder,
(LPVOID*)&pGraphBuilder);
// 向directshow询问MediaControl接口:
pGraphBuilder->QueryInterface(IID_IMediaControl,(LPVOID*)&pMediaControl);
//建立 Graph:
pMediaControl->RenderFile(FILENAME);
           //向directshow询问VideoWindow接口:
pGraphBuilder->QueryInterface(IID_IVideoWindow,(LPVOID*)&pVideoWindow);
// 全屏:
pVideoWindow->put_Visible(OATRUE);
pVideoWindow->put_FullScreenMode(OATRUE);

           //开始播放:
pMediaControl->Run();
// 等待:
MessageBox(NULL,"Block Execution","Block",MB_OK);
         
          //停止:
pMediaControl->Stop();
// release resource:
pVideoWindow->Release();
pMediaControl->Release();
pGraphBuilder->Release();
// COM 销毁:
CoUninitialize();
return 0;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-5-18 21:31 , Processed in 0.056787 second(s), 23 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.