- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于DirectShow的媒体播放器设计 学号:200706705 作者:国艳松 基于DirectShow的媒体播放器设计 研究背景与意义 开发相关技术 DirectShow体系结构 播放器的功能设计 智能连接 DirectShow播放器的实现 播放器系统演示 1. 研究的背景与意义 随着信息技术的发展,流媒体播放器迎来新的挑战。 DirectShow简化多媒体应用程序的开发,不必考虑复杂的数据流格式和不同的终端设备,以及数据同步的问题。 DirectShow 给多媒体程序开发员提供了标准的、统一的、高效的API 接口 2. 开发相关技术 DirectX SDK9.0 微软将DirectX定义为“硬件无关性”,从而提高设备性能 Microsoft Visual C++6.0平台 Windows提供的可视化集成开发环境 3. DirectShow体系结构 COM组件 Filter Filter Graph Filter Graph Manager 3.1 COM组件 是一种软件架构,它规定了不同的对象使用统一的协议来进行通讯的一套机制。 COM组件的特点 COM组件类型 GUID 3.2 过滤器(Filter) DirectShow是基于模块化,每个功能模块都采取COM组件方式,称为过滤器(Filter)。 Filter存在形式 Filter 分类 Filter 状态 3.3 过滤器图(Filter Graph) 过滤器图 (Filter Graph)是过滤器 (Filter)的容器。 过滤器图作用 过滤器图数据传输模式 过滤器图状态 3.4 过滤器图管理器(Filter Graph Manager) 应用程序用于控制过滤器图和过滤器的COM组件。 过滤器图管理器功能: 1:状态改变 2:参考时钟 3:Graph事件 4. 播放器的功能设计 本论文中要求基于DirectShow设计播放器,根据对媒体的分析得到系统的主要功能如下: 媒体播放器 播放器的基本功能 截图功能 全屏功能 声音控制功能 换肤功能 播放模式控制 播放列表操作 6. 智能连接 是构建Filter Graph的一种方法 智能连接的优点 1:与传统方法相比,具有智能化 2:避免了代码冗余 智能连接原理 7. DirectShow应用程序开发 创建过滤器管理器实例 使用过滤器管理器构建过滤器图 过滤器管理器控制过滤器图和流数据通过过滤器。 应用程序释放过滤器管理器和所有的过滤器。 7.1 创建过滤器管理器实例 首先初始化DirectX SDK动态库: CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,IID_IGraphBuilder, (void **)mGraph) 7.2应用程序构建过滤器图 利用IGraphBuilder::RenderFile函数,进行智能连接 该参数提供源文件名,自动加入必要的Filter完成这个文件的回放Filter Graph构建。 RenderFile函数机理: 分析文件路径中是否有协议名(如http、ftp),如果有,则在注册表的位置下寻找这个协议名,找到了则使用Source Filter键值指定的CLSID。 找不到的情况下,Filter Graph Manager就创建一个成为File Source的Filter。 7.2应用程序构建过滤器图 文件路径中不包括协议名,Filter Graph就分析这个文件的扩展名,然后到注册表中区匹配扩展名。如果找到了,就根据Source Filter键值指定的CLSID创建Filter。 若找不到,Filter Graph Manager 就进行文件的校验字节判断。如果没有符合的,Source Filter就要创建一个File Source的Filter. 7.2应用程序构建过滤器图 IGraphBuilder::RenderFile 使用上述方法检测文件的类型,确定并找到正确的源过滤器(Source Filter)。确定源过滤器(Source Filter)后,就从源过滤器(Source Filter)的各个输出Pin开始,进行剩下的智能连接过程。这是一个“递归过程”,直到所有的分支都连接到一个Rendering Filter上为止。 8.3智能连接构建Filter Graph 在操作系统中,通过安装各种媒体软件和DirectShow开发包,就会存在了大量的实现特定功能的Filter,利用这些己有Filter,可以开发各个功能的应用程序,提高了开发效率。 利用Filter Graph Manager组建Filter Graph时,寻找Filter是程序开发的关键。 那Direc
原创力文档


文档评论(0)