- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Directshow教程0.11
MSDN翻译系列
作者:黄丁杰
说明:如果有任何问题请联系din-je@163.com。是本人业余翻译的如果有错误请直接发到我邮箱我会立刻改正,directshow的其他文章我会在以后不断翻译出来。如果觉得好请帮我作作宣传。欢迎转载,但是禁止修改。
Directshow起步。
本章主要介绍diirectshow在编写程序时所需的基本概念。在本章你可以总揽下directshow技术。你必须在总体上对本章的编程和媒体有所了解。
本章将介绍
。设置编译环境
。介绍directshow应用程序编程
。如何播放一个文件
设置编译环境:
你可以编译工程在命令行模式下或者在vs集成环境中
头文件
所有的directshow应用程序都使用下面的头文件。
Dshow。H
部分directshow接口需要附加的头文件。这些文件会在接口的注意中给出。
所需的库文件
directshow需要如下的库文件
strmiidl。Lib 该库包含CLSIDs和IIDs的接口。所有的directshow都需要该库。
Quartz。Lib 该库包含AMGetErrorText函数。如果你没有调用该函数,该库没有用。
记住在你的编译环境中必须把directx SDK 的头文件库和连接库的目录作为vs优先有哪些信誉好的足球投注网站的路径。这样可以保证编译的时候用的是必威体育精装版版本的文件。
介绍directshow应用程序编程
本章介绍编写一个directshow程序的基本技术和概念,读完本章你就可以写个你自己的directshow的应用程序了。
滤镜和图像滤镜
directshow是由被称作滤镜的东西构成的。滤镜是一个软件包用来执行对多媒体流的一些操作。比如directshow的滤镜可以
读出一个文件
从视频捕捉设备获取视频流
解码各种各样的多媒体格式,比如MPEG-1S视频。
传输视频和音频到屏幕和声卡。
滤镜几乎完成视频播放所需要的从输入到输出的所有功能。比如一个MPEG-1的滤镜。它可以输入MPEG码流然后输出图像帧用于后续显示
在directshow程序中只要执行把滤镜连接在一起就可以了。就是把一个滤镜的输入和另外一个滤镜的输出连接在一起就可以了。一组连接在一起的滤镜叫做图像滤镜。比如下面的图示就是一个播放AVI文件的图像滤镜的例子
正如上面图示的,文件滤镜把AVI文件从硬盘读入。AVI分离滤镜分离文件流为两个数据流。一个是视频压缩流,一个是硬盘流。AVI解压滤镜用于解压视频流生成视频帧。视频显示滤镜用于把视频帧用directdraw或者GDI显示到屏幕上。音频留输入到默认声音设备滤镜把声音通过directsound播放出来。
因此应用程序就不用管理任何数据流。代替的,滤镜被叫做高端组件叫做图像滤镜的进行控制。程序只要创建一些高级API。就像RUN(用于在图像控件中移动数据)或者STOP(用于停止数据流)。但是如果你要求更多的数据流控制,那你也可以直接存取控制的COM接口。图像滤镜也会反馈一定的事件消息给应用程序。
图像滤镜可以服务另外的目的。提供给应用程序创建图像滤镜的方法,还有把各个滤镜连接在一起的方法。(directshow同时也提供一些帮助的组件可以简单的处理。这些全部都有在文档中描述。
编写一个directshow程序
总的来说,写个directshow程序必须进行这三个步骤。就像下面的图例。
创建个图像滤镜管理的实例
然后用图像理解管理实例建立一个图像滤镜。外部滤镜间依赖于这个图像滤镜。
应用程序应用图像滤镜控制图像滤镜和数字流在滤镜中的流动。通过这些处理。应用程序也应该回应滤镜管理事件。
当处理结束后。应用程序释放图像滤镜管理器和所有的滤镜。因为directshow是基于COM的,因此图像滤镜管理和滤镜都是COM对象。因此你必须对COM客户端编程有所了解。具体的可以在DirectX SDK中的一篇文章叫做《Using COM》中有很好的介绍COM对象的资料。而且是有很多COM编程的书籍可以参考。
如何播放一个文件
本文章是想让你喜欢上Directshwo编程。我们要创建一个简单的命令行下的程序用于播放音频或者视频文件,这个程序实在是太简单了,可是它所完成的功能却是非常强大。这个程序只要短短的几行的代码就可以搞定了。可是它所完成的功能却是以前只有专门公司才能开发出来的软件所能实现的。它可以用来演示播放任何的多媒体文件。用它你可以立刻喜欢上directshow的编程。
就像上面的文章说描述的那样,一个directshow应用程序总是有三个基本的步骤。
建立个图像滤镜管理器的实例
用图像滤镜管理建立一个图像滤镜
给它运行的消息,让数据流在各个滤镜中移动。
好了,我们开始编写我们直接的多媒体演示程序。
首先我们必须调用C
文档评论(0)