博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DirectShow 最简单的入门 -- 播放一段视频
阅读量:5325 次
发布时间:2019-06-14

本文共 1725 字,大约阅读时间需要 5 分钟。

1 #include 
2 3 #pragma comment(lib,"strmbase.lib") 4 #pragma comment(lib,"quartz.lib") 5 6 int main() { 7 // Filter Graph Builder 8 IGraphBuilder *pGraph = NULL; 9 // Media Control10 IMediaControl *pControl = NULL;11 // Media Event12 IMediaEvent *pEvent = NULL;13 // 初始化COM库,HRESULT 就是函数运行的结果是成功了还是失败了,使用FAILED(hr),SUCCEEDED(hr) 来判断14 HRESULT hr = CoInitialize(NULL);15 16 // 如果初始化COM库失败的话,就返回17 if (FAILED(hr))18 {19 return 0;20 }21 22 // 创建 Filter Graph Manager23 hr = CoCreateInstance(24 CLSID_FilterGraph,25 NULL,26 CLSCTX_INPROC_SERVER,27 IID_IGraphBuilder,28 (void**) &pGraph29 );30 31 // 如果创建失败 返回32 if (FAILED(hr))33 {34 return 0;35 }36 37 // 使用 Filter Graph Manager 得到 MediaControl & MediaEvent38 hr = pGraph->QueryInterface(IID_IMediaControl,(void**)&pControl);39 hr = pGraph->QueryInterface(IID_IMediaEvent,(void**)&pEvent);40 41 // 设置渲染一个视频文件42 hr = pGraph->RenderFile(L"E:/学习/WPF/VS2008WPFVideo07.wmv",NULL);43 44 if (SUCCEEDED(hr))45 {46 // 使用 pControl 的 RUN 方法,开始播放视频47 hr = pControl->Run();48 49 if (SUCCEEDED(hr))50 {51 // 等待播放结束52 long evCode;53 pEvent->WaitForCompletion(INFINITE,&evCode);54 }55 }56 57 // 释放资源58 pControl->Release();59 pEvent->Release();60 pGraph->Release();61 // 释放COM库62 CoUninitialize();63 64 return 0;65 }

 

DirectShow 是基于COM 组件的, 所以在使用前最好先了解一下COM编辑的一些基础的知识.

最近也是刚开始接触DS ,因为在做新媒体应用 的时候总是很常用到.所以很有了解学习的必要

做了一个最简单的入门程序(来自己网络),用来敲开DirectShow的大门!!!

 

转载于:https://www.cnblogs.com/easyfrog/p/3391121.html

你可能感兴趣的文章
I - Agri-Net - poj 1258
查看>>
git 的回退
查看>>
IOS开发学习笔记026-UITableView的使用
查看>>
Confluence配置数据库
查看>>
Java锁机制(一)synchronized
查看>>
002.文件删除功能
查看>>
[转载]电脑小绝技
查看>>
windos系统定时执行批处理文件(bat文件)
查看>>
06-redis主从
查看>>
linux下面桌面的安装
查看>>
thinkphp如何实现伪静态
查看>>
作业引擎quartz.net --- 监听链
查看>>
iframe传参数
查看>>
人工智能 tensorflow框架-->Softmax回归模型的理论理解 07
查看>>
BZOJ 2243: [SDOI2011]染色( 树链剖分 )
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
三点坐标求三角形面积(数学)
查看>>
c++中的string常用函数用法总结!
查看>>
C语言学习记录_2019.02.06
查看>>
Java中Calendar工具类的一些常用方法
查看>>