《多媒体视频播放器.docx》由会员分享,可在线阅读,更多相关《多媒体视频播放器.docx(13页珍藏版)》请在优知文库上搜索。
1、目录1 .根本功能描述O2 .设计思路13 .软件设计23.1设计步骤*t23.2界面设计3.2.1图标设计3.2.2对话框设计菜单栏设计3.3关键功能的实现3.3.1翻开、播放功能的实现3.3.2“暂停/继续、停止功能的实现静音和音量滚动条的实现5播放列表功能的实现4.心得体会65.思考题66.附录776.1 调试过程76.2 测试结果7.6.3关键源代码参考文献812多媒体视频播放器1 .根本功能描述多媒体视频播放器作为用来播放视频和音频的软件,是当下信息时代中人们口常学习、办公、休闲娱乐都不可或缺的软件,也是WindoWS系统中必备的一个重要软件。在学习了Windows编程应用后,我们可
2、以利用VC+6.0的MFC应用编程制作属于自己的多媒体视频播放器。多媒体视频播放器要实现对*.avi、*.mp3、*.Wma、*.WmV等多种格式的多媒体文件进行播放。同时包含翻开、播放、暂停、继续、停止、快退快进、音量控制等根本功能和对播放列表的展开、保存、删除和清空等操作。其中可以通过按钮、滚动条和菜单等多种方式来实现相应控制操作。2 .设计思路要利用VC+6.0创立多媒体播放器,我们必须先了解MFC编程,MFC是MiCrOSOft公司提供的基于Win32APl的C+类库集,它定义了一个标准的应用程序框架,借助这个框架,用户可以轻松地开发出标准的WindoWS应用程序。创立应用程序时,我们
3、需要用到APPWiZard、CIaSSWiZard和各种控件。而在本次多媒体视频播放器的设计中,我们需要用到VC+6.0内部的ActiveX控件WindowsMediaPlayer控件。WindOWSMediaPlayer简称WMP,是一款WindoWS系统自带的播放器,支持通过插件增强功能。其控件作为本次课设的媒体控件可以满足要求。并且该控件是微软自带的免费控件,通常WindoWS系统中都有这个控件,所以选用这个控件方便设计出来的软件在各个电脑运行。要创立这个程序,首先是要建立相应的对话框和各种控件(包括插入WindowsMediaPlayer控件)以及图标、菜单栏等资源,然后为初始化设置对
4、话框相应的样式等包括修改图标代码等),然后为相关控件建立相应的消息相应函数,通过对相应类中函数的调用实现相应的功能。主要包含播放列表操作模块和视频播放模块,又各自包含相应的功能函数。软件流程图如下:开女台对于本次多媒体播放器,我们采用MFC对话框创立,然后插入WMP控件,借助类向导完成各个功能函数的编写。在WMP控件里,与多媒体播放器实现功能有关的类有:Cwmpplayer4,Cwmpcontrols,Cwmpmedia.Cwnipplaylist,CWmPSettingS五大类。其中播放器的一些根本的功能如播放、暂停、快进、快退等主要是调用CWMPControl和Cwmpplayer4类实现
5、的;播放器中播放列表的实现主要是调用Cwmpplaylist类;对于音量的调节以及静音是调用Cwmpsettings和Cwmpplayer4类实现的。除了以上提到的功能的实现,还有翻开对话框是调用翻开对话框类,筛选文件是调用SZFileFilter()文件过滤函数,获取文件名字和路径是GetFiIeNameo和GetNextPathNameO函数,音量滑动条Slinder是通过对CSliderCtrI类实现的。3.1 设计步骤首先建立一个以自己名字命名的MFC工程,并在随后弹出的MFC应用程序向导中选择创立相应根本对话框。图2新建对话框示意图然后在资源对话框中,先删去初始化的“确定和取消,再单
6、击鼠标右键选择“插入ActiveX控件,在跳出的对话框中选择WindowsMediaPlayer。图3添加“WindowsMediaPlayer控件示意图随后在类向导中找到WMP控件对应的ID号,然后把控件的相关类都添加进来,让控件与对话框联系起来。图4*WindowsMediaPlayerw控件类添加示意图然后再在类向导MemberVariables中为控件关联相应的变量,命名为m_player,类型选择为Control。图5SourceFilew新增的文件这时我们己经可以看到在SourceFile中新增了17个类相关文件,在相应头文件中也增加了17个头文件。其中最主要的类为Cwmpplay
7、er4,Cwmpcontrols,Cwmpmedia,Cwmpplaylist,CWmPSeningS五大类。CWmPPlayer4类主要是关于对其他类的对象的调用以及根本的控件功能的实现,提供了与WindOWSMediaPIayer控件进行交互的根本方法,其中局部成员函数还能够进一步获取得到其他相关类对象的实例;Cwmpcontrols类主要是对控件的更多的操作;Cwmpmedia类主要是对于媒体文件资源的一些操作;Cwmpplaylist类主要是关于播放列表的操作;Cwmpsettings类主要是对于媒体文件中的一些根本设置的操作。3.2 界面设计3.2.1 图标设计为了界面美观,图标采用
8、自己下载的播放器图标,在Source里插入“Icon来引入图标,ID为“ID1CON1。此处需要注意的是图标的格式须为ico格式,然后要在相应位置将默认的图标ID改为所需的,即在图标相应变量定义的地方改ID号:m_hlcon=AfxGetApp()-LoadIcon(IDI_ICON1);/图标3.2.2 对话框设计在资源界面中编辑对话框,添加各个控件并根据自己喜好排布和设置相应ID号,构建界面友好美观的对话框。然后在类向导中为相关控件建立相应消息响应映射,添加消息响应函数。表1控件ID以及对应响应函数表按钮ID控件Caption消息响应函数IDC_OPEN翻开OnOpei()IDC_PLAY
9、播放OnPIayO1DCPAUSE暂停/继续OnPauseOIDC_STOP停止OnStopOIDC_FORWARD快进OnForwardOIDC_BACKWARD快退OnBackwardOIDC_MUTE静音/音量OnMuteOIDC-EXIT退出OnExit()IDC_LIST播放列表OnListOIDC_SAVE保存列表OnSave()IDC_DELETE删除视频OnDeIeteO1DC_CLEAR清空列表OnClearO然后是参加一些关联变量的控件,之前参加了WMPlayer,还要参加CSIiderCtrI类型的滑块Slider来当调节声音,参加“CListBox类型列表框“ListC
10、ontrol充当播放列表。表2控件ID以及关联变量表按钮ID控件Caption变量名称类型IDC_OCX1WMPlayerm_playerCWMPlayer4IDC_SLIDER2Sliderm_volumeCSliderCtrlIDC_LIST1ListControlmistCListBox对话框的最后样式为:图6对话框的样式323菜单栏设计在已经构建好对话框,完成控件的关联和相应消息响应函数的添加后,菜单栏的添加就相对简单多了,只需要将相应菜单项选择项的ID号与上述表中ID保持一致就能直接用菜单项选择项调用相应消息响应函数了。图7菜单栏的创立3.3 关键功能的实现关键功能的实现主要都是在相
11、关控件的相应消息相应函数中添加相应的代码,从而实现所需要的功能。下面将讨论关键的功能函数,相应代码在附录中给出。3.3.1 翻开、“播放功能的实现“翻开按钮主要是实现了对翻开的文件进行过滤,主要使用了SZFiIeFilter()函数。定义了能翻开的文件格式等。点击确定时,首先是获取文件路径,然后把文件路径传给播放列表中,列表在从文件路径中提取文件名来显示。而播放按钮能够从列表中获取文件路径,然后把文件路径通过SetUrIo交给控件读取播放。同时定义了初始的音量大小。3.3.2 “暂停/继续、“停止功能的实现“暂停/继续按钮是通过GetDlgltemTeXt()函数获取按钮上的字符来判断是当按钮
12、按下时是执行暂停还是继续播放,并通过SetDlgItemTeXt()函数来改变按钮上的显示字符。其中暂停和继续播放这里是利用Cwmpcontrols类中的GetControls().pause()和GetContrOISo.play()这两个函数来实现的。当按下暂停时视频停止播放,同时按钮显示继续,点击“继续,那么继续播放视频并显示“暂停。而停止功能在这里那么是直接利用了控件类中的ClOSe()函数来实现停止的。值得一提的是程序中的快进快退功能也是利用了Cwmpcontrols类中的fastForward()和fastReverse()函数来实现的。3.3.3 静音和音量滚动条的实现静音功能的
13、实现与暂停/继续功能类似,都是利用GetDIgltemTeXto和SetDlgItemTeXtO函数来获取和改变按钮上的显示字符。所不同的是,静音功能的实现是调用了“CWMPSettingsqpp文件里的SetVOIUme()函数。初始时按钮显示音量,按下后静音,音量滚动条也回到最低位置,按钮显示“静音,再次按下音量恢复,显示“音量。音量滚动条相比于前面几个功能的实现,要显得复杂很多,区别于其他命令按钮的,它是滑块,需要关联变量“m_volume,在“OnInitDiaIogO函数中己对滑块范围进行初始化m_volume,SetRange(0,100);使音量变化范围为0100,再调用嵌套函数
14、m_player.GelSettings().SetVolume(m_volume.GetPos();来获取滑块位置并设置相应音量。3.3.4 播放列表功能的实现播放列表主要有“隐藏/展开、“保存列表、“删除选中视频、“清空列表这四个功能。这个列表的四个功能实现前提是在工程的文件夹里新建一个txt文档并命名为“Iisttxt。文档可以保存播放文件列表使在下次翻开时可自动的生成播放列表。展开列表和隐藏列表是通过SetWindoWPoSo函数对对话框的大小进行设置,让最右边的列表可以显示出来和被隐藏。保存列表是利用CFile类中的相应函数来创立文本:fileQpen(.list.txt,CFile
15、:modeCreate|CFile:modeReadWrite|CFile:typeText);创立文本再利用函数GetTeXt()和WriteStringo这两个函数把列表中的内容写入文档中去。删除选中的视频那么是通过如下代码来实现的:m_list.DeleteSlring(m_list.GetCurSel();/删除当前光标所选择的行清空列表直接利用CWmPPIayliSt类中的RCSetContent()函数来实现的。4 .心得体会本次课程设计安排在学期末,比拟深入地考察了我们对MFC的运用及掌握。与让我们更进一步地了解到了WindOWS编程的实际应用,在开拓我们眼界的同时稳固了我们课上所学知识,也进一步锻炼了我