VC15_16多媒体播放器的设计与系统发布

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

多媒体设计与系统发布暨南大学电气信息学院严东松2015-2016学年第一学期第10章多媒体播放器的设计10.1WMPlayer项目设计10.2DSPlayer的设计10.3注册表与使用次数10.4软件安装与发布WMPlayer播放器1.播放器的介绍播放器应用程序是模仿Windows系统自带的MediaPlayer来设计的。其运行的界面如图10.1所示,界面中包括菜单栏播放列表以及播放窗口。图10.1播放器界面所要掌握的知识点(1)动态链接库、注册表、COM互操作和系统API函数。(2)程序集。(3)熟悉FolderBrowserDialog组件和SplitContainer控件的使用。10.1项目的创建播放器应用程序的设计主要是播放器窗体的设计,使用微软提供的MediaPlayerCOM组件。创建步骤:1.创建播放器项目创建播放器项目:创建一个Windows窗体应用程序,项目名称为“WMPlayer”。修改窗体Form1的属性窗口,其中Text设置为“播放器”。StartPosition设置为“CenterScreen”。2.添加控件:将窗体“Form1”调整到适当大小,从工具箱中拖放1个MenuStrip、1个StatusStrip、1个OpenFileDialog、1个FolderBrowserDialog、1个SplitContainer控件和1个下拉列表框组件到Form1窗体中。3.添加COM组件打开工具箱,右击任意处,单击“选择项”选项,在弹出的“选择工具箱项”对话框中单击“COM组件”选项卡,选中“WindowsMediaPlayer”选项,如图10.4所示,单击“确定”按钮完成COM组件的添加。在工具箱中出现了“WindowsMediaPlayer”COM组件,如图10.5所示,将此组件拖放到SplitContainer控件的左半部。图10.4“选择工具箱项”对话框图10.5WindowsMediaPlayer10.3设计播放器窗体4.设计菜单:菜单栏menuStrip1的设置。分别添加“文件”、“控制”、和“帮助”3个主菜单。其中在文件主菜单中添加“打开”和“退出”两个子菜单,在控制主菜单中添加“播放”、“停止”、“暂停”、“上一个”、和“下一个”子菜单。5.打开文件对话框openFileDialog1的设置。FileName设置为“空值”,Filter设置为“mp3文件|*.mp3|wma文件|*.wma|所有文件*.*|*.*”,MultiSelect设置为“True”。axWindowsMediaPlayer1的设置。Dock设置为“Fill”。StatusStrip1设置为5个标签。5.修改Form1的函数:在Form1中添加以下数组和全局变量staticarraySystem::String^^list=gcnewarraySystem::String^(30);//媒体的数目staticintnum=0;//媒体的数量staticintcurrentItem;//当前播放序号staticString^currentFile;//当前播放文件名staticboolifPause;//是否处于暂停标记状态添加菜单事件代码:private:System::Void打开OToolStripMenuItem_Click(System::Object^sender,System::EventArgs^e){//“文件”-“打开”菜单}private:System::Void播放ToolStripMenuItem_Click(System::Object^sender,System::EventArgs^e){}private:System::VoidtoolStripMenuItem2_Click(System::Object^sender,System::EventArgs^e){}private:System::Void停止ToolStripMenuItem_Click(System::Object^sender,System::EventArgs^e){axWindowsMediaPlayer1-Ctlcontrols-stop();}private:System::Void暂停ToolStripMenuItem_Click(System::Object^sender,System::EventArgs^e){axWindowsMediaPlayer1-Ctlcontrols-pause();}private:System::Void添加媒体ToolStripMenuItem_Click(System::Object^sender,System::EventArgs^e){}public:voidShowInfo(void){}private:System::VoidtoolStripComboBox1_DropDownClosed(System::Object^sender,System::EventArgs^e){//若在列表项中选择了文件,则播放选中文件}private:System::VoidtoolStripComboBox1_DropDown(System::Object^sender,System::EventArgs^e){//播放列表显示在comboBox中,在其下拉事件响应函数中添加以下代码,作用是//下拉时刷新ComboBox中的所有列表项}private:System::Void下一个ToolStripMenuItem_Click(System::Object^sender,System::EventArgs^e){}private:System::Void上一个ToolStripMenuItem_Click(System::Object^sender,System::EventArgs^e){}10.6待完成部分(1)完善“删除文件”主菜单,其中包括“删除重复文件”、“删除错误文件”、“删除选择文件”和“删除全部文件”子菜单。(2)完善“播放方式”主菜单,其中包括“顺序播放”、“单曲循环”、“全部循环”和“随机播放”子菜单。基于DirectShow的媒体播放器设计随着信息技术的发展,流媒体播放器迎来新的挑战。DirectShow简化多媒体应用程序的开发,不必考虑复杂的数据流格式和不同的终端设备,以及数据同步的问题。DirectShow给多媒体程序开发员提供了标准的、统一的、高效的API接口DirectXSDK:微软将DirectX定义为“硬件无关性”,从而提高设备性能4.播放器的功能设计•基于DirectShow设计播放器的主要功能如下:媒体播放器播放器的基本功能截图功能全屏功能声音控制功能换肤功能播放模式控制播放列表操作IFilterGraph过滤通道接口IFilterGraph2增强的IFilterGraphIGraphBuilder最为重用的COM接口,用于手动或者自动构造过滤通道FilterGraphManagerIMediaControl用来控制流媒体,例如流的启动和停止暂停等,播放控制接口IMediaEvent播放事件接口,该接口在FilterGraph发生一些事件时用来创建事件的标志信息并传送给应用程序IMediaEventEx扩展播放事件接口IMediaPosition播放的位置和速度控制接口(控制播放位置只能为设置时间控制方式)IMediaSeeking另一个播放的位置和播放速度控制接口,在位置选择方面功能较强.设置播放格式,多种控制播放方式.常用的有:(1)TIME_FORMAT_MEDIA_TIME单位100纳秒。(2)TIME_FORMAT_FRAME按帧播放IBasicAudio声音控制接口IBasicVideo图像控制接口(波特率,宽度,长度等信息)IVideoWindow显示窗口控制接口(有关播放窗口的一切控制,包括caption显示,窗口位置控制等)ISampleGrabber捕获图象接口(可用于抓图控制)IVideoFrameStep控制单帧播放的接口DirectShow应用开发常用的接口9播放器系统演示换肤演示打开文件演示截图界面声道/声音控制L1.注册表1.注册表介绍注册表(Registry)是MicrosoftWindows中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows3.0推出OLE技术的时候,注册表就已经出现。随后推出的WindowsNT是第一个从系统级别广泛使用注册表的操作系统。但是,从MicrosoftWindows95开始,注册表才真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用至今。L1.注册表2.打开注册表如果是Windows2000/XP操作系统,执行【开始】→【运行】菜单命令,在弹出的“运行”对话框中输入“regedit”,回车或者单击“确定”按钮打开注册表。打开的注册表如图10.13所示。另外一种方法就是在Windows目录下找到regedit.exe,直接双击也可以打开。图10.13注册表编辑器L1.注册表3.存放位置Windows2000/XP注册表文件按功能来分,也是由系统注册表文件和用户注册表文件两类组成的。注册表文件存放系统的所有设置信息,系统设置和缺省用户配置数据存放在系统\系统文件夹\SYSTEM32\CONFIG文件夹下的6个文件,DEFAULT、SAM、SECURITY、SOFTWARE、USERDIFF和SYSTEM中,而用户的配置信息存放在系统所在磁盘的\DocumentsandSetting\文件夹,包括NTUSER.DAT、NTUSER.INI及ntuser.dat.LOG日志文件。4.注册表结构注册表由键(或称“项”)、子键(子项)和值项构成。一个键就是分支中的一个文件夹,而子键就是这个文件夹中的子文件夹,子键同样是一个键。一个值项则是一个键的当前定义,由名称、数据类型以及分配的值组成。一个键可以有一个或多个值,每个值的名称各不相同,如果一个值的名称为空,则该值为该键的默认值。L1.注册表注册表的数据类型主要有四种,如表10.2所示。注册表中的所有信息都是分类保存的,“主键”是各个大的信息分类名称。注册表中的所有信息均被分类存放在相应主键中。操作系统不同,相应的主键也不相同,其中,Windows9x、WindowsNT、WindowsMe操作系统中有6个主键,而Windows2000、Windows2003和WindowsXP操作系统中则有5个主键。(1)HKEY_CLASSES_ROOT主键(2)HKEY_CURRENT_USER主键(3)HEKY_LOCAL_MACHINE主键(4)HKEY_USERS主键(5)HKEY_CURRENT_CONFIG主键(6)HKEY_PERFORMANCE_DATAL1.注册表5.Registry类由Registry类公开的基或根RegistryKey实例描绘注册表中的子项和值的基本存储机制。所有的项都是只读的,因为注册表依赖于它们的存在。由Registry公开的成员如表10.3所示,一旦标识了希望在其下存储/检索注册表中信息的根项后,可以使用RegistryKey类添加或移除子项和操作给定项的值。L1.注册表Registry类型公开2个成员方法,如表10.4所示。【例EX10_3】设计一个让用户试用一定次数的WinForm程序,如果超过试用的次数,则不允许再试用本软件,这样的程序可以通过将软件的试用次数写入注册表来实现。设计步骤:(1)新建WinForm项目新建WinForm项目并命名为“EX10_3”。(2)添加控件并设置属性在Form1的设计视图中将此窗体调整到适当的大小并将“Text”属性设为“读写注册表”。L1.注册表(3)添加命名空间因为要读写注册表,所有要添加命名空间:usingMicrosoft.Win32;(4)添加事件及其代码切换到设

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功