基于VC的多媒体播放器设计毕业论文23800.doc
《基于VC的多媒体播放器设计毕业论文23800.doc》由会员分享,可在线阅读,更多相关《基于VC的多媒体播放器设计毕业论文23800.doc(21页珍藏版)》请在三一办公上搜索。
1、本科生毕业论文(设计)题 目: 基于VC下的多媒体播放器设计 姓 名: 黄建飞 学 院: 理学院 专 业: 网络工程 班 级: 091班 学 号: 1887090111 指导教师: 黄勇 职称: 副教授 2013年5月26日安徽科技学院教务处制目 录摘要关键字1 引言1.1 课题研究的目的和技术发展的现状1.1.1 研究本课题的目的1.1.2 技术应用的基本现状1.2 论文完成的主要工作1.3 本论文中的重点2 基本功能描述3 设计思路4 软件设计4.1设计步骤4.2界面设计4.3关键功能的实现5 总结与心得体会6致谢7参考文献8 附录8.1调试报告8.2测试结果基于VC下的多媒体播放器设计网
2、络工程专业学生 黄建飞指导老师 黄勇摘要 目前常见的多媒体软件应该说各有特色,但是几乎每一款多媒体软件都存在着不如人意的地方。我的毕业设计题目是“基于VC下的多媒体播放器设计”,首先是初步介绍一些当前的媒体及媒体播放器,然后是详细介绍一个由本人设计的多媒体播放器软件。该播放器是基于MFC 集成开发环境下,利用系统的MCI(media controller interface)命令接口来编程。开发出多媒体播放器具有体积小,支持的播放格式多、系统资源占用少、支持播放列表编辑、支持各种视频格式等功能优势。关键字:媒体播放器;MCI;播放列表;音频;视频1 引言多媒体技术的概念和应用出现于20 世纪8
3、0 年代初期,经过数十年的发展,并且随着计算机科学网络的普及和多媒体技术的发展,多媒体技术已成为计算机领域发展的热点技术,针对目前各种媒体格式,如何简单方便的播放各类媒体已成为人们普遍关注的问题,从而媒体播放器的开发也变得相当重要。1.1 课题研究的目的和技术发展的现状1.1.1 研究本课题的目的随着技术的发展,多媒体素材类型也在增多,包括音频、视频、图像、动画等,由于音视频、图像等的信息容量大,受硬件条件限制,以往多媒体应用并不广泛,随着硬件技术的不断提高,多媒体技术已为各类人员广泛使用,开发多媒体软件、网络课程、网站、应用软件、管理项目等均需利用多媒体素材,因此开发制作这一播放器具有很现实
4、的意义,与其它多媒体播放器相比较,这一多媒体播放器具有功能较为强大、占用空间小、占用系统资源少的特点,它与现有多媒体资源应用状况紧密结合,既具有很强的直观感,又不失一般性。1.1.2 技术应用的基本现状Microsoft公司1998年推出了Visual C+6.0,它是支持Win32平台应用程序(application)、服务(service)和控件(control)开发的可视化编程的集成环境。与VC+5.0的最大不同之处是它的帮助功能更强大,MSDN(Microsoft Developer Net- working)为包括VC+6.0在内的所有微软的程序产品提供在线帮助;另外,类的对象的可用
5、成员函数、成员变量及函数的参数类型与个数都能动态显示在屏幕上,用户无须记住那些复杂而又枯燥乏味的函数名及复杂的参数,这无疑使得用VC+编程更加容易。所以VC+6.0可谓是Microsoft 公司的王牌产品,编程功能强大而赢得广大程序员的偏爱。多媒体技术已经在如下若干方面开展了有效的应用:多媒体管理信息系统、展示系统;多媒体电子出版物(Title);计算机辅助教学、教育培训;计算机艺术制作、设计;计算机娱乐游戏、双向电影;协同工作。有以下三大发展趋势:进一步完善计算机支持的协同工作环境;智能多媒体技术;把多媒体信息实时处理和压缩编码算法集成到CPU 中。1.2 论文完成的主要工作根据学习和研究,
6、此多媒体播放器的开发是基于VC+MFC的对话框,再利用Windows MCI(Media Control Interface)控件和VC+6.0自带的ActiveX 控件Windows Media Player来实现各类媒体格式的播放及程序界面处理。首先确定要解决的问题是要弄清楚MCI 函数与命令消息的名称类型和功能;其次是通过分析媒体播放的具体过程,在打开媒体设备的过程中应用程序需要做哪些事情,以便在应用程序中加入对这些过程支持的代码;在对应用程序的流程有了大致的轮廓以后,再开始考虑程序框架的设计,应用程序外观的设计;最后也是最关键的就是编写实现播放媒体的代码将播放器的基本功能实现,紧接着就
7、是程序的调试和完善。1.3 本论文中的重点本论文中的重点是对Windows Media Player控件的应用,Windows Media Player 控件是微软公司推出的用于多媒休程序设计的控件,它提供了非常完善的音频和视频媒体文件的回放功能,能支持多种文件格式,从最常见的WAV 文件和AVI 文件到使用MPEG 压缩格式的VCD 视频文件,都可以正常地进行播放。控件能根据文件后缀进行自动判别设备类型,并完成相应的控制。因此,若正在编写的应用程序需要提供多媒体支持,那么使用Windows Media Player控件是一个很好的主意。事实上,很多优秀的多媒体应用程序,其内部的多媒体回放就是
8、利用Windows Media Player控件来实现的,只要精心地去设计应用程序的用户界面,我们一样可以开发出功能齐全、外观漂亮、具有相当水准的多媒体播放器。使用Windows Media Player控件开发多媒体应用程序可以大大提高多媒体开发效率,只要设置控件的File.Name属性,确定该控件要打开的媒体文件名称,然后执行RUN方法就可以对该媒体文件进行播放;通过设置Selectio.End和Selection- Slart的值,可以实现播放某一段媒体流;还能用鼠标Click相应的按钮完成播放、停止、暂停、保存列表、清空列表、删除当前等功能。2 基本功能描述 多媒体播放软件现在几乎成为
9、每一台家用计算机的装机必备软件,比较流行的有快播、暴风影音以及百度影音等等,通过这些软件能够播放RM、RMVB、MP3、MPEG、DAT等多种格式的多媒体文件。这些商业软件在功能上已经做的相当完备,也符合大多数普通消费者的的胃口,但很多人电脑里总是安装了多种播放器,因为不同的播放器有不同的特点,并不是每个人都执著于用某一款播放器,因此设计一款符合自己使用习惯的播放器是很可行的。 使用VC+6.0强大的MFC、AppWizard、Class Wizard和其中的多种控件可以很方便地建立各种应用软件。同时想要实现更高级更复杂的功能,也可以借助ActiveX控件资源,用这些现有的控件资源,可以省去自
10、己编程的复杂过程,从而实现更高级的功能。本次课程设计要使用VC+6.0自带的一个ActiveX控件Windows Media Player控件,建立自己的多媒体播放器。 此多媒体播放器具有打开文件、播放、暂停、保存列表、清空列表、删除当前、退出、静音等基本播放功能,并且可以播放:*.mp3,*.wma,*.rmvb,*avi等格式的音频视频文件。同时还具有自制的可隐藏的播放列表,并且可以在播放模式中选择顺序播放、随机播放、单曲循环三种方式。同时,我也添加了保存列表的功能,当下一次打开时能保留上一次保存的播放列表,当然也添加了清空列表和删除当前的功能,更具人性化。3 设计思路根据各个按钮控件功能
11、以及Windows Media Player控件的特点,首先要在头文件中将CWMPControl,CWMPSettings等类的对象的绑定以及定义,在后面的程序中需要调用这些类的成员函数。对于打开文件按钮,需要调用通用文件对话框类,并利用listbox中的AddString函数把选中的文件添加到播放列表中,在MFC学习中有涉及。对于一些基本的功能的实现,如播放、暂停、全屏、音量增大、音量减小、静音、快进、快退等功能,主要调用CWMPControl和CWMPPlayer类中的成员函数来进行实现。对于播放列表,这次设计使用了SetWindowPos函数来改变一个子窗口弹出的尺寸和方向,并一些相关的
12、函数实现了保存列表、删除列表、删除当前的功能。对应播放列表,我还添加了播放模式选择的功能,提供了顺序播放、随即播放、单曲循环三种选择。这当中运用的ontimer()函数和settimer()函数来控制播放模式。参照以上的设计思想,流程图如图1所示: 图1 流程图4 软件设计4.1设计步骤首先,打开Microsoft Visual Studio6.0软件,新建一个工程如图2所示,以HuangJianfei为工程名,然后将此工程定义为基于对话框的MFC应用程序如图3所示,点击完成就成功建立了一个基于对话框的工程。图2 工程建立图3基于对话框的MFC程序在建立好工程之后,首先是Windows Med
13、ia Player控件的添加:建立空白对话框之后,在对话框的空白处单击鼠标右键,选择Insert ActiveX Control菜单项。选择Windows Media Player控件,如图4所示。加入控件后,此时该控件与该对话框并没有联系,需要对其进行变量的关联。图4 Windows Media Player控件的添加添加完该控件之后可以发现,该控件与右边控件工具栏添加的控件的形式与功能完全不同,是一种更为高级的控件,将该控件名改为IDC_player,如图5所示:图5 Windows Media Player控件虽然已经添加了该控件,但是可以发现,该控件并没有与工程中的对话框发生任何联系,
14、所以需要对其进行变量的关联,所属类为HuangJianfei类,变量类型为CWPPlayer4如图6所示:图6 关联变量 关联变量之后,才算是真正的添加完了该控件,可以发现在关联变量之后,控件工具栏多了Windows Media Player控件的选项,并且在Source Files中增加了17个类,相应的头文件也增加了17个,如图7所示:图7 添加控件后的变化其中最主要的类为Cwmpplayer4,Cwmpcontrols,Cwmpmedia,Cwmpplaylist,Cwmpsettings五大类。Cwmpplayer4类主要是关于对其他类的对象的调用以及基本的控件功能的实现,提供了与Wi
15、ndows Media Player控件进行交互的基本方法,其中部分成员函数还能够进一步获取得到其他相关类对象的实例;Cwmpcontrols类主要是对控件的更多的操作;Cwmpmedia类主要是对于媒体文件资源的一些操作;Cwmpplaylist类主要是关于播放列表的操作;Cwmpsettings类主要是对于媒体文件中的一些基本设置的操作。对于该控件的添加以及内部函数的理解需要较多时间熟悉,添加完此关键控件之后,进行界面的设计。4.2界面设计首先是打开按钮,用于媒体文件的打开。然后依次是,播放、暂停、保存列表、清空列表、删除当前、隐藏/展开、静音、播放、停止、退出等按钮。对其进行变量的关联,
16、以及ID的修改,修改结果如表1、表2所示:表1 控件ID以及关联变量控件Caption按钮ID关联变量类型关联变量名称WMPlayerIDC_playerCWMPlayer4m_HuangJianfei表2 控件ID以及对应响应函数控件Caption按钮ID消息响应函数打开IDC_OPENOnOpen()播放IDC_PLAYOnPlay()暂停IDC_PAUSEOnPause()保存列表IDC_SAVELISTOnSavelist()清空列表IDC_DELLISTOnDellist()删除当前IDC_DELLISTCUROnDellistcur()双击播放列表IDC_LIST1OnDblclk
17、List1()隐藏/展开IDC_ONLISTOnOnlist()列表框IDC_LIST1OnDblclkList1()静音IDC_MUTEOnMute()表3 控件ID以及对应响应函数控件Caption按钮ID消息响应函数停止IDC_STOPOnStop()退出IDC_EXITOnExit()关于IDC_ABOUTOnAbout()以上为有对应控件的对象的关联,除了有对应控件的,还需要有Windows Media Player控件所生成的17个类中的几个重要的类进行对象的定义,可知,对于成员对象的定义和成员函数的声明都放在头文件中,此次设计共主要用到其中3个类 ,因为设计了一个退出提醒弹出框,
18、所以也要对其定义,具体如表3所示:表4 其他类及对应对象类名对象名类名对象名CWMPControls.m_ControlCWMPPlaylistm_PlaylistCWMPMediam_MediaCStringm_PathNameCWMPSettingsm_SettingCString m_FileName除了对各个控件关联变量以及消息响应函数,还要对对话框类进行消息响应函数的关联,因为此次设计中添加了播放模式选择的功能,所以需要用到WM_TIMER消息响应函数以及SetTimer()和OnTimer()函数来实现这项功能,将对话框类进行该消息响应函数的关联并书写程序。添加方法如图8所示。图8
19、 添加WM_TIMER消息响应函数 最终得到各个空间分布后的界面如图9所示:图9 多媒体播放器界面除了以上主对话框外,我还对ABOUTBOX进行了重新设计,也自制了一个Check对话框,其中ABOUTBOX如图10所示。Check对话框是在用户点击退出按钮自动弹出的提醒窗口,主要用于防止用户误按关闭按钮导致程序关闭,有利于用户的使用,增强软件的友好性,如图11所示。图10 修改后的ABOUTBOX对话框图11 提醒对话框关于菜单的制作,首先,需要在ResourceView中加入资源Menu,后增加对应的菜单项以及菜单自己布局,下拉菜单则需要和按钮关联,其方法是将其ID和按钮的ID一样,菜单布局
20、图12所示。图12 菜单栏4.3关键功能的实现对于各个函数的介绍,本论文以关键代码以及注释的方式进行介绍,首先介绍主对话框中函数的实现以及说明:(1)Onopen(); /打开函数void CHuangJianfeiDlg:OnOpen() 其中难点在于对于陌生函数的理解,由于类数目较多,各类又有各自不同的成员函数,运用起来比较困难。除了调用通用文件对话框和较为熟悉之外,其他的函数都是平时没有见过的。播放列表中获取路径名是靠的添加主要依靠于GetNextPathName()函数,而 m_ListCtrl.AddString()函数是将项目名添加到播放列表中。(2)Onlist();隐藏/展开播
21、放列表按钮函数和OnDblclkList1();播放列表函数:int flag=0;void CHuangJianfeiDlg:OnOnlist() 对于隐藏/展开播放列表按钮,设计在那的功能是运行软件时播放器的播放列表是展开的,当点击按钮时,播放列表隐藏。为了实现这个功能,我将播放列表LIST1和播放列表按钮关联起来,关系设为控制。为此,在程序定义了一个全局变量flag,将其设为一个标志,在初始化时定义窗口无相对位移,当点击按钮是,窗口位移,因此就实现了播放列表的隐藏和出现的功能。而对于播放列表,则要求它实现双击播放功能,所以对列表控件增加一个消息映射,并选择双击消息函数响应,如图13所示。
22、在其中编程时也加入了执行响应函数SetTimer(),当点击函数时就开始创建计数器,以便实现播放模式的功能。图13 播放列表消息映射函数设置具体函数如下所示:void CHuangJianfeiDlg:OnDblclkList1() (3)播放函数及其他多媒体播放控制按钮void CHuangJianfeiDlg:OnPlay() /播放void CHuangJianfeiDlg:OnPause() /暂停void CHuangJianfeiDlg:OnStop() /停止(4)播放模式 播放模式的选择需要用到WM_TIMER消息如图14所示,以及适时调用SetTimer()和OnTimer(
23、)函数。初始化时默认设置为顺序播放,当双击播放时就开始创建计数器,每1秒就执行以下OnTimer函数。而OnTimer函数就会获得播放状态,如果当前的播放完了,就检测单选按钮在哪,从而选择执行哪个程序。如果是顺序播放,就自动执行下一项目;如果是随机播放,就在“列表的文件数”中产生一个随机数,然后执行;而如果是单曲循环,那么就一直执行当前文件。图14 M_TIMER消息添加 初始化(在OnInitDialog()函数下)程序如下:m_ListCtrl.SetCurSel(0); /选择第一行(CButton*)GetDlgItem(IDC_RADIO1)-SetCheck(true); /默认播
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VC 多媒体 播放 设计 毕业论文 23800

链接地址:https://www.31ppt.com/p-3939449.html