视频播放器设计分析

合集下载

基于Android的多功能视频播放器的系统设计说明

基于Android的多功能视频播放器的系统设计说明

文档编号:基于Android的多功能视频播放器系统设计说明书目录1引言 (4)1.1目的 (4)1.2适用围 (4)2系统架构 (5)2.1硬件架构 (5)2.2软件架构 (9)3完整功能结构图 (11)4系统数据库设计 (11)4.1 E-R图设计 (11)4.2字段设计 (11)4.2.1本地视频文件记录表 (11)4.2.2历史播放文件表 (12)4.2.3 收藏文件表 (12)5视频播放器部署图 (13)6 系统需求 (13)6.1系统界面需求 (13)6.2系统性能需求 (13)6.1系统开发环境需求 (14)7视频播放器流程图 (14)1引言1.1目的本文档是多通道同步数字记录仪升级换代项目的系统设计文档。

从系统的高层角度对系统的硬件架构、软件架构、网络架构、系统部署、系统运行方式进行设计,为下一步各个模块的详细设计提供系统级的视图。

1.2适用围本文用于描述多通道同步数字记录仪升级换代项目的系统设计,给出系统的主要架构与配置项,对相关运行、数据、用户接口、容错与复用和重要模块进行分析,作为项目后续详细设计与开发实现的依据。

本说明书的阅读对象为:跟我们同龄的有一定基础的大学生,以及相关的项目开发人员等等。

.. .. ..2系统架构2.1硬件架构2.1.1 JDK安装JDK是Java语言的原创者推出的原始开发环境。

采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。

在Windows上安装JDK非常简单,访问Oracle官方下载页面,网址为www.oracle./technetwork/indexes/downloads/index.html,也可从其他下载。

下载完成后,双击运行JDK安装程序并根据提示设定环境变量。

2.1.2 Android SDK安装以及系统设置下载好SDK包后,将zip文件解压缩至合适的地方。

在下文中,默认SDK安装目录为$SDK_ROOT 。

VxWorks系统下网络视频播放器的设计

VxWorks系统下网络视频播放器的设计
2 总体设计
用于 网络 组播 视 频播 放 的播放 器设 计主 要 包括播放器 图形 界面交互模块、网络组播视 频 输入模块 、视频 解码模块 、视频播放显示模 块 ,另外若 需要 支持本地视频文件播放 ,还 需 要本地文件输入模 块,有相互关联 的模块之 间 还 需要利用信号量 、看 门狗或时钟中断进行 同
产生,或人工调用相关函数产生 。
其 中,图形 显 示交 互模 块 由播放 器 窗 口
MSG PTR BTN1 DOWN: 鼠 标 左 键 按
示 功 能
本 地文 件 数 据 流
播放本地 厂—
待解 码 数 据输
空件 J-kcM*— 诎:I 入勰褥队列

l输入模块 j

图形界面

. .. ..

交互模块
播蓉震 网
时钟 定时模块
15Hz描放 f 倍 号
!视频播放
. 显示模块I


【关键词 】VxWorks播放 器 MPEG一4
形对 象。程序利用窗 口接收人机交 互事件 ,通 过 回调 函数进行事件的处理 ,还可 以控制 窗口 的 移 动 、 尺 寸 变 化 。
对 于 窗 口 控 件 的 开 发 , 主 要 通 过 winClassCreate 接 口 函 数 创 建 一 个 具 有 同 样 属 性、 同 样 消 息处 理 器 的 窗 口类 , 并 通 过 winCreate创建 关联 了该类 的 窗 口实体,在 消 息处理器中将需要处理的事件进行相应 的操作 处理,以实现 某种控 件的基本功能 。
消息 处理器 需 要处 理的 消息 由系 统底 层 统一定义好 ,也可 由用户 自行新 建。主要处理 的 消 息 包 括 :

在线视频播放系统的设计与实现

在线视频播放系统的设计与实现

题目在线视频播放系统的设计与实现学生姓名崔媛媛学号 ********** 所在学院物理与电信工程学院专业班级电子1202 指导教师李菊叶完成地点物电学院计算机信息处理分室2016 年6月5日毕业论文﹙设计﹚任务书院(系) 物电学院专业班级电子信息工程学生姓名崔媛媛一、毕业论文﹙设计﹚题目在线视频播放系统的设计与实现二、毕业论文﹙设计﹚工作自 2016 年 3 月 10 日起至 2016 年 6 月 20 日止三、毕业论文﹙设计﹚进行地点: 物电学院计算机信息处理分室四、毕业论文﹙设计﹚的内容要求:随着网络的普及,在线播放器也日益普及起来。

本设计要求学生利用Visual C++为开发工具,使用DirectShow SDK技术开发一个功能齐全的视频播放器,要求能够对硬盘或存储设备上的多媒体文件进行播放,及在回放或显示过程中,用户可以控制回放的动作和显示特性等相关功能。

五、毕业论文﹙设计﹚应收集资料及参考文献:[1]徐孝凯,张纪勇.C++面向对象程序设计:VC++6.0运行环境[M].天津大学出版社2009.[2]汪晓平,钟军.VC++网络通信协议分析与应用实现[M].北京:人民邮电出版社,2003.[3]王艳平,张越.Windows网络与通信程序设计[M].北京:人民邮电出版社,2006.[4] Andrew S.Tanenbau.计算机网络(第四版)[M].北京:清华大学出版社,2004.[5]谢希仁.计算机网络(第五版)[M].北京:电子工业出版社,2012.[6]朱桂英.张元亮 Visual C++网络编程开发与实践[M].清华大学出版社.2013.六、毕业论文﹙设计﹚的进度安排:3月2日——3月29日:查阅资料,完成初步设计方案和开题报告。

4月1日——4月26日:根据视频播放系统的工作原理,给出设计方案,及软件流程图。

4月29日——5月24:并在软件环境下进行运行调试,进一步完善系统功能,整理资料;5月27日——6月7日:撰写、修改毕业设计论文。

视频播放器的程序设计及代码示例

视频播放器的程序设计及代码示例

视频播放器的程序设计及代码示例一、介绍视频播放器是一种常用的应用程序,用于播放电影、电视剧、MV等各种类型的视频文件。

它可以提供良好的用户体验,具备快进、快退、调节音量、全屏播放等功能。

在本文中,将介绍视频播放器的程序设计原理,并给出一些示例代码来帮助读者更好地理解和实践。

二、程序设计原理1. 用户界面设计:视频播放器的用户界面需要简洁明了,并提供直观的操作按钮,如播放、暂停、停止、快进/快退、音量调节等。

可以使用图标、按钮、滑块等控件来实现,并合理布局,以便用户轻松地操作和控制播放器。

2. 视频解码与显示:视频播放器需要将视频文件进行解码,并实时将解码后的图像进行显示。

常见的视频解码算法有H.264、MPEG-2等。

可以使用像素缓冲区来存储解码后的图像数据,并使用界面库或图形库将图像数据显示在屏幕上。

3. 音频解码与播放:视频文件中通常包含音频轨道,视频播放器需要将音频数据解码并实时播放。

音频解码可以使用MP3、AAC等常见的音频解码算法。

播放音频可以使用操作系统提供的音频播放接口,如Windows下的DirectSound、Linux下的ALSA等。

4. 文件格式支持:视频播放器需要支持常见的视频文件格式,如MP4、AVI、MKV等。

这涉及到对不同格式文件的解析和支持,需要使用相应的解析库或者开源框架。

5. 视频控制功能:视频播放器除了基本的播放、暂停、停止功能外,还应该提供快进/快退、跳转指定位置、循环播放、调节音量和亮度等高级控制功能。

通过对用户操作的监测,可以实现这些功能,并更新界面以反映当前的播放状态。

三、代码示例以下是一个基于Java编写的简单视频播放器的代码示例,用于展示播放视频文件和基本的控制功能:```javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.File;import ponent.EmbeddedMediaPlayerComponent;import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;public class SimpleVideoPlayer {private JFrame frame;private JPanel playerPanel;private JButton playButton;private JButton pauseButton;private JButton stopButton;private EmbeddedMediaPlayer mediaPlayer;public SimpleVideoPlayer() {frame = new JFrame("Simple Video Player");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(800, 600);playerPanel = new JPanel();frame.getContentPane().add(playerPanel, BorderLayout.CENTER);playButton = new JButton("Play");pauseButton = new JButton("Pause");stopButton = new JButton("Stop");playerPanel.add(playButton);playerPanel.add(pauseButton);playerPanel.add(stopButton);mediaPlayer = newEmbeddedMediaPlayerComponent().getMediaPlayer();playButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {mediaPlayer.play();}});pauseButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {mediaPlayer.pause();}});stopButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {mediaPlayer.stop();}});frame.setVisible(true);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {public void run() {SimpleVideoPlayer player = new SimpleVideoPlayer();}});}}```这段代码使用了Java语言,基于VLCJ (VLC Java Bindings)库来实现视频播放器。

在线视频播放器需求报告说明书

在线视频播放器需求报告说明书

在线视频播放器需求报告说明书自查报告。

为了确保在线视频播放器的功能和性能能够满足用户的需求,我们进行了一次
自查。

以下是我们对在线视频播放器需求的自查报告:
1. 用户界面设计。

我们对用户界面进行了自查,确保界面简洁明了,易于操作,并且能够适配
不同的屏幕尺寸和分辨率。

2. 视频播放功能。

我们测试了视频播放功能,包括播放、暂停、快进、快退、音量调节等功能,确保视频播放流畅,没有卡顿和延迟。

3. 视频格式支持。

我们对不同格式的视频文件进行了测试,确保在线视频播放器能够支持常见
的视频格式,如MP4、AVI、MKV等。

4. 视频清晰度。

我们测试了在线视频播放器在不同网络环境下的视频清晰度,确保能够自动
调整清晰度,以保证用户在不同网络条件下都能够流畅观看视频。

5. 广告和弹窗。

我们检查了在线视频播放器的广告和弹窗显示情况,确保不会影响用户体验,并且能够提供关闭广告和弹窗的功能。

6. 用户反馈。

我们收集了用户的反馈意见,对用户提出的问题和建议进行了分析和整理,以便对在线视频播放器进行进一步的改进和优化。

通过以上自查,我们发现在线视频播放器在用户界面设计、视频播放功能、视频格式支持、视频清晰度、广告和弹窗以及用户反馈方面都能够满足用户的需求。

我们将继续关注用户反馈,不断改进和优化在线视频播放器,以提供更好的用户体验。

Android多功能视频播放器的设计与实现

Android多功能视频播放器的设计与实现

Android多功能视频播放器的设计与实现
程颖;姚晔;张家珲
【期刊名称】《信息通信》
【年(卷),期】2016(0)6
【摘要】近年来,因为智能终端的方便性与易携带性,更多的人热衷于通过手机等移动终端来随时随地的观看视频。

Android应用市场上的视频播放软件功能各异,但绝大多数是用于播放本地视频。

文章依赖于Vitamio框架设计与实现一个集本地视频播放、网络视频播放、网络视频直播为一体的Android多功能视频播放器。

【总页数】2页(P104-105)
【作者】程颖;姚晔;张家珲
【作者单位】杭州电子科技大学计算机学院,浙江杭州310018;杭州电子科技大学计算机学院,浙江杭州310018;杭州电子科技大学计算机学院,浙江杭州310018
【正文语种】中文
【中图分类】TP311.52
【相关文献】
1.基于Android的AVS2视频播放器的设计与实现 [J], 闫闵;胡鑫;李元琪;冉睿;何糠;李恒
2.基于Android的多功能日程表的设计与实现 [J], 徐亦丹
3.基于Android的高清视频播放器的设计与实现 [J], 白冰;陈绍茹
4.基于Android的多功能日程表设计与实现 [J], 庄云晓;张锦邦;朱浩文;荀浩坚;庄龙威;赖嘉杰;张家豪
5.基于Android的多功能电子书阅读器的设计与实现 [J], 余丽娜
因版权原因,仅展示原文概要,查看原文内容请购买。

短视频平台的技术架构与系统设计

短视频平台的技术架构与系统设计

短视频平台的技术架构与系统设计随着手机普及率的不断增长和移动互联网的快速发展,短视频平台成为了当今社交娱乐领域的热门应用之一。

本文将探讨短视频平台的技术架构与系统设计,介绍其核心组成部分和关键功能。

一、引言短视频平台是一种通过上传短视频内容实现用户之间交流和分享的互联网应用程序。

其主要目标是提供一个稳定、高效、安全的平台,以实现用户上传、浏览和交互的需求。

为实现这一目标,短视频平台的技术架构和系统设计至关重要。

二、技术架构短视频平台的技术架构包括前端和后端两部分,下面将逐一介绍。

1. 前端技术架构前端技术架构主要包括界面展示和用户交互的实现。

其关键技术包括:(1)响应式布局:短视频平台需要适应各种设备的屏幕尺寸,响应式布局技术可以根据不同设备的屏幕尺寸自动调整页面的布局和内容。

(2)移动优先:考虑到大多数用户使用手机浏览短视频平台,前端技术应该优先考虑移动设备的适配和优化。

(3)HTML5和CSS3:HTML5和CSS3提供了丰富的标签和样式,可以实现更丰富多样的页面效果,提高用户体验。

2. 后端技术架构后端技术架构主要负责数据的存储、处理和传输。

其关键技术包括:(1)分布式存储系统:考虑到短视频平台的海量视频数据,采用分布式存储系统可以提高数据的存储效率和可扩展性。

(2)流媒体服务器:为了提供流畅的视频播放体验,可以使用流媒体服务器来实现视频的分发和传输,以提供优质的用户体验。

(3)数据缓存技术:为了提高系统的响应速度,可以使用数据缓存技术来减轻后端数据处理的压力,提高系统的性能。

(4)用户认证和权限管理:为保障用户数据的安全性和隐私,短视频平台需要实现用户认证和权限管理功能,确保用户身份的合法性和数据的保密性。

三、系统设计短视频平台的系统设计包括核心功能和辅助功能的设计,下面将详细介绍。

1. 核心功能核心功能是指短视频平台必备的基本功能,包括:(1)视频上传与存储:用户可以通过短视频平台上传自己的视频内容,平台将这些视频存储到分布式存储系统中,实现高效的存储和管理。

毕业设计论文《ActionScript视频播放器》计算机专业计算机应用技术

毕业设计论文《ActionScript视频播放器》计算机专业计算机应用技术

毕业设计(论文)I 摘要在多媒体技术高速发展的今天,多媒体播放器出现了多种缺点和毛病,主要表现在内存大量占用和操作复杂繁琐方面。

本文针对当今流行视频播放器的优缺点进行了研究,然后在此基础上进行综合和总结,开发出了一个功能丰富和操作简易的视频播放器,该播放器具有低内存占用和绿色无广告的特点,因此具有广阔的市场前景。

本视频播放器是基于脚本语言ActionScript3.0,利用Adobe Adobe Flash Flash Flash CS4CS4设计开发完成。

Flash Flash CS4CS4是一种功能非常强大的工具,可以将视频添加到基于Web 的应用程序中。

Flash 的FL V 和F4V 视频格式具备技术和创意优势,允许将视频、数据、图形、声音和交互式控制融为一体。

结合ActionScript 3.0 的脚本绘图技术以及数组技术,的脚本绘图技术以及数组技术,可以方便地制作出媲美专业水平的视频播可以方便地制作出媲美专业水平的视频播放器。

本次设计就将利用Flash Flash CS4CS4制作一个可以进行列表选择、音量控制、进度控制的视频播放器。

本次设计主要利用Actionscript3.0作为后台逻辑处理和功能实现,文中对视频播放器做了详细的需求分析,并详细介绍了视频播放器的总体设计,包括视频播放器的架构设计、功能模块的划分、视频播放列表文件的设计、常用工具的设计、本地数据存储设计等,然后具体介绍了以上各个部分和功能的具体实现原理和过程,最后再对该视频播放器进行测试,没有重大的异常和错误,证明其设计方案的可行性和正确性。

关键词:ActionScript3.0 脚本绘图数组技术低内存占用毕业设计(论文)AbstractWith the rapid improving of the times and the rapid development of network technology, multimedia technology keeps pace with the times. As sustained rapid development in multimedia technology, a variety of shortcomings and faults are emerged in multimedia player, mainly in the occupation of memory and the complication of the operation. This article analyze the advantages and disadvantages of the current popular multimedia player then developed a video player with low memory footprint and without advertisements based on this, so it will get a broad market prospects. prospects. The The The video video video on on on demand demand demand system system system is is is based based based on on on the the the scripting scripting scripting language language language ActionScript ActionScript ActionScript 3.0, 3.0, design and development with Adobe Flash CS4 completed. Flash CS4 is a very powerful tool, you you can can can add add add video video video to to to a a a Web-based Web-based Web-based application. application. application. Flash Flash Flash to to to FL V FL V and and and F4V F4V F4V video video video formats formats formats with with technical technical and and and creative creative creative advantages, advantages, advantages, allows allows allows video, video, video, data, data, data, graphics, graphics, graphics, sound, sound, sound, and and and interactive interactive interactive control control integration. Combined Combined with with with ActionScript ActionScript ActionScript 3.0 3.0 3.0 scripting scripting scripting graphics graphics graphics technology technology technology and and and an an an array array array of of technology, you can easily produce professional level comparable video player. The design will use use Adobe Adobe Adobe Flash Flash Flash CS4 CS4 CS4 can can can produce produce produce a a a list list list of of of selection, selection, selection, volume volume volume control, control, control, schedule schedule schedule control control control of of of the the video player. Actionscript3.0 is main used to handle the logic and to realize the function, then a detailed requirement analysis is make and introduces the general design of the video player. Include the architecture design, the functional modules divided, the design of video play list file, the design of tools, the local data storage design and so on, and then introduced the specific implementation principle and process of the above every part and function. In this paper, the design of the music on-demand system is tested by the black box and white box, no major anomalies and errors, to prove the feasibility and correctness of its design. Key word :ActionScript3.0 Script Graphics Array Technology Low Memory-occupation 毕业设计(论文)目 录第1章 绪论绪论 ................................................................. ................................................................ 1 11.1 1.1 课题来源及开发背景课题来源及开发背景课题来源及开发背景 .................................................. .................................................. 1 11.2 1.2 研究目的及意义研究目的及意义研究目的及意义 ...................................................... ...................................................... 1 1 1.3 1.3 开发工具及运行环境开发工具及运行环境开发工具及运行环境 .................................................. .................................................. 1 11.3.1 Flash .......................................................... ......................................................... 1 11.3.2 1.3.2 开发语言开发语言开发语言 ....................................................... ...................................................... 2 21.3.3 1.3.3 运行环境运行环境运行环境 ....................................................... ...................................................... 3 3第2章 需求分析需求分析 ............................................................. ............................................................ 4 42.1 2.1 本视频播放器的研究内容和关键技术本视频播放器的研究内容和关键技术本视频播放器的研究内容和关键技术 .................................... .................................... 4 4 2.1.1 2.1.1 视频格式视频格式视频格式 ....................................................... ...................................................... 4 42.2 2.2 故障分析故障分析故障分析 ............................................................ ............................................................ 5 52.2.1 2.2.1 系统利用率系统利用率系统利用率 ..................................................... .................................................... 5 52.2.2 2.2.2 可靠性可靠性可靠性 ......................................................... ........................................................ 5 52.3 2.3 播放器的初步开发实施方案播放器的初步开发实施方案播放器的初步开发实施方案 ............................................ ............................................ 5 5 2.4 2.4 功能划分功能划分功能划分 ............................................................ ............................................................ 5 52.5 2.5 用例表用例表用例表 .............................................................. .............................................................. 6 6第3章 概要设计概要设计 ............................................................. ............................................................ 8 83.1 3.1 总题设计总题设计总题设计 ............................................................ ............................................................ 8 83.2 3.2 外观设计外观设计外观设计 ............................................................ ............................................................ 9 93.3 3.3 总体功能设计总体功能设计总体功能设计 ........................................................ ........................................................ 9 9 3.4 3.4 主要功能介绍主要功能介绍主要功能介绍 ....................................................... ....................................................... 10 10第4章 数据库设计数据库设计 .......................................................... ......................................................... 11 114.1 4.1 播放列表(播放列表(播放列表(XML XML 文件)结构文件)结构 ............................................ ........................................... 11 114.2 XML 书写格式书写格式 ........................................................ ....................................................... 12 124.3 4.3 播放器数据存储的数据结构设计播放器数据存储的数据结构设计播放器数据存储的数据结构设计 ....................................... ....................................... 12 12第5章 详细设计详细设计 ............................................................ ........................................................... 14 145.1 5.1 播放器外观设计播放器外观设计播放器外观设计 ..................................................... ..................................................... 14 145.2 5.2 视频播放器主要模块视频播放器主要模块视频播放器主要模块 ................................................. ................................................. 15 155.2.1 5.2.1 舞台设计舞台设计舞台设计 ...................................................... ..................................................... 15 155.2.2 5.2.2 按钮制作按钮制作按钮制作 ...................................................... ..................................................... 16 165.2.3 5.2.3 主界面主要源代码主界面主要源代码主界面主要源代码 ............................................. ............................................. 17 17 5.3 5.3 系统测试系统测试系统测试 ........................................................... ........................................................... 23 23总结与展望总结与展望 ................................................................. ................................................................ 24 24致 谢 ...................................................................... ..................................................................... 25 25参考文献参考文献 ................................................................... (2626)毕业设计(论文)第1章 绪论1.1 课题来源及开发背景随着教育信息化的发展,Flash 的使用越来越受重视。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Run() 、Stop() 来控制媒体的播放与停止。
在本实例中,第一步创建一个 Filter Graph Manager组件,由自定义的封装类
CDXGrap来h 完成, 它的实现文件是 CDXGraph.cpp和CDXGraph.h。第二三步要实现与
CDXGrap之h 问的事件交互。由主窗口 MainForm(MainUnit.cpp 和 MainUnit.h) 完成。
另一种是用基于 DirectShow 技术的第三方控件包 DsPack。
2.3.1 直接用 Direct X SDK 中的 DirectShow 技术的媒体播放器。
用DirectShow 编写播放器,可以说主要包括三步:
①创建一个 Filter Graph Manager 组件。
②根据实际的应用,创建一条完整的链路。比如播放一个本地文件:
IBasicAudio 分别是图像和声音控制接口; IVideoWindow视频窗口控制接口;
IMediaSeeking 用于媒体数据流的定位,提供对播放的精确控制,如获得当前播放
位置等。
IGraphBuilder *mGraph ;
IMediaControl *mMediaControl ;
IMediaEVentEx *mEvent ;
Graph的构建。
m_FilterGraph -> RenderFile(m_SourceFile.c_str())

// 设置视频窗口并设置消息通知窗口
m_FilteGraph -> SetDisplaywindow(Panell ->Handle)

m_FilteGraph -> SetNotifyWindow(this ->Handle)
FilterGraph 组件基本对应于 DirectShow 中的 Filter Graph Manager ,Filter Graph的创建和控制由它完成。 Filter 组件可以充当 DirectShow 中的各种 Filter ,
VideoWindow组件相当于是一个 RenderingFilter ,用来显示采集到的视频图像。 其

(void * *)&mseeking) ;
// 连接输入输出 Pin 针脚,连接各个 Filter
hr=mGraph -> ConnectDirect(inOutputPin ,inInputPin ,inMediaTyp) ;
//IGraphBuilder 接口的方法 RenderFile 来连接给定的媒体文件,完成 Filter
由多媒体播放器的开发现状看来, 并没有哪一款播放器能适应所有多媒体文件 的解读,随着视频、音频的迅猛发展,媒体文件的格式层出不穷,由过往美国在线 (AOL)公司的 Nullsoft 部门开发的 Winamp独占鳌头,到 Real Networks 公司的 Real Player 和微软公司的 WindowsMedia Player 风靡全球,再到如今播放器开发的百花 齐放的竞争时代,多媒体播放器的开发经历了许多风浪和变化,但是,仍然没有出 现全能的播放器,始终没有跨越编码格式的局限,随着多媒体技术的不断发展,人 们对多媒体软件的要求也不断高涨, 所以对多媒体软件的开发也成为当今计算机开 发的重要课题。目前的音频、视频格式繁多,研制格式覆盖面广的多媒体播放器前 景非常广泛。

(void * *) &mMediaControl) ;
hr = mGraph -> QueryInterface(IID_IMediaEventEx

(void * *)&mEvent) ;
hr = mGraph -> QueryInterface(IID_IBasicVideo

(void * *) &mBasicVideo) ;
视频播放器设计
1 需求分析
由于计算机的普及, 极大地改变了人们的生活。 随之带来了开发各种软件的需 求。家用型计算机主要用于家用软件、 学习软件、 游戏软件和多媒体和多媒体软件, 以及播放 CD、VCD、 DVD、MP3等多媒体信息。然而多媒体播放器的开发仍然不能满 足人们的需求, 多媒体文件格式多样, 但却没有一款播放器能够满足所有格式的解 码。人们渴望解码能力更强大,功能更完备的多媒体播放器。
应用程序
源过滤器 Source Filters
音视频采集设备
应用程序
命令
事件
DirectShow
过滤器图表管理器 Filters Graph Manager
转换过滤器 Transform
Filters
呈现过滤器 Render Filters
应用程序
各种软硬件解码器
声卡
显卡
图2-1 DirectShow 开发应用程序原理图 过滤器 Filter 是建立在 COM技术基础上的,每个 Filter 本身就是一个 COM组件, 各个 Filter 集合组成过滤器图 (Filter .Graph) , DirectShow 提供 Filter Graph Manager组件来管理整个过滤器图,比如 Filter 间的连接和数据流动。 Filter 之间 通过 Pin( 针脚 ) 连接。 更多感性认识 DirectShow ,可以 DirectX SDK 中的自带的实用的程序 GraphEdit ,位于安装目录 \Bin\DXUtils\graphedt.exe 。GraphEdit 是构造 Filter Graph Manager的可视化工具,在 GraphEdit 中可以很方便地设计出过滤器图,并验 证其可行性。 比如: 播放一个典型的 Demo1.mp文g 件 ( 将文件拖动到 GraphEdit 窗口 ) 所自动构建的 Filter Graph 。见图 2-2 。
2 系统总体设计
2.1DirectShow 概述 DirectShow 是一种通过自定义或内置的大量的 Filter( 过滤器 ) 来处理多媒体
数据的体系结构。这些 Filter 大致分三类: Source Filter( 源过滤器 ) 、Transform Filter( 转换过滤器 ) 、 Render Filter( 呈现过滤器 ) 。源过滤器主要负责获取数据, 数据源可以是文件、网络、计算机采集卡或数字摄像机里的,然后数据向下传输到 Transform Filter ,它主要负责数据的格式转换,然后继续向下传输到 Render Filter ,它主要负责数据的最终去向, 将数据送给显卡声卡进行播放或输出变成文 件存储起来,见图 2-1 。

// 开始播放
m_FilteGraph ->Run() ;
,,
// 关闭 COM组件库,释放资源
CoUtlinitialize() ;
2.3.2 基于 DirectShow 技术的第三方控件包 DSPack的媒体播放器
Dspack2.34 是C++ Builder 中用于做 DirectShow 开发的免费 VCL控件。下载地
MPEG Audio Decoder
Default DirectSound Device
Demo.mpg
MPEG-1 Stream Splitter
MPEG Video Decoder
Video Renderer
图 2-2 MPEG文件播放的 Filter Graph 如图 2所示,箭头方向即是数据的流动,可以看到: MPEG-1 Stream Splitter 属于 Source Filters ,负责接收源文件数据; MPEG Audio Decoder、MPEG Video Decoder属于 Transform Filters ;分别负责视频、音频的解码;Default DirectSound Device 、 Video Renderer 属于 Render Filters ,分别负责对视频显示和音频播放。 执行菜单 Graph->Play ,可以看到播放的影音文件。在 Graph->Insert Filters 可以 看到 DirectShow 提供的大量的支持基本应用的 Filter 。
“多媒体” 是一种新型的信息处理与传播技术。 有人认为它是信息及其传输媒 介方面的一场根本革命。人们对新技术的渴望和欢迎、新奇感和占有欲、宣传热情 和赞美态度,是发自内心的。特别是计算机多媒体技术的功能,令人大开眼界,惊 叹不已。 它在商业、 信息检索、 文化娱乐和教育等方面的应用效果明显, 前景广阔。
2.2 软件的总体架构
AVI 视频
RMVB 视频
视频指针 解码
主界面 用户
图 2-3 软件架构
2.3 详细设计与实现
下面在 C++ Builder 中,利用 DirectShow 技术设计媒体播放器,介绍了
DirectShow 程序的一般编写方法。以两种方法实现:一种是直接用 DirectX SDK ;
HRESULT hr=CoCreateInstance(CLSID_FilteGraph ,NULL,
CLSCTX_INPROC_SER,VEIIDR_IGraphBuilder ,(void * *) &mGraph);

// 用 QueryInterface() 函数获取接口指针
hr = mGraph -> QueryInterface(IID_IMediaControl
址: http://www ./ 。DSPack的安装可以参考相关文档。
图2-4 组件面板上的 DSPack2.34
Dspack2.34 中有七个组件: FilterGraph 、VideoWindow、SampleGrabber、
Filter 、 ASFWriter 、DSTrackBar、DSVideoWindowEx。2 见图 5-1 。
相关文档
最新文档