多媒体视频播放器.docx
- 文档编号:4179820
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:25
- 大小:27.83KB
多媒体视频播放器.docx
《多媒体视频播放器.docx》由会员分享,可在线阅读,更多相关《多媒体视频播放器.docx(25页珍藏版)》请在冰豆网上搜索。
多媒体视频播放器
多媒体视频播放器......................................................................................................................1...
1基本功能描述...........................................................................................................................1...
2设计思路..................................................................................................................................1....
3软件设计..................................................................................................................................2....
3.1设计步骤.......................................................................................................................3...
3.2界面设计.......................................................................................................................6...
3.3关键功能的实现...........................................................................................................9...
3.3.1“打开”功能的实现.........................................................................................9..
3.3.2“播放”、“暂停”、“停止”“全屏”功能的实现..........................................1.0
3.3.3“上一首”和“下一首”功能实现...............................................................1..1
3.3.4音量滑动条功能的实现...................................................................................1..2
3.3.5播放列表功能的实现.......................................................................................1..3
3.3.6进度滑动条功能的实现...................................................................................1..5
4结论与心得体会.....................................................................................................................1..6.
5参考文献................................................................................................................................1..7..
6思考题....................................................................................................................................1..7..
7附录.......................................................................................................................................1..8..
7.1调试报告......................................................................................................................1..8.
7.1.1调试一..............................................................................................................1..8.
7.1.2调试二..............................................................................................................1..9.
7.2测试结果.....................................................................................................................2..0.
7.3关键源代码.................................................................................................................2..1.
武汉理工大学《面向对象程序设计》课程设计说明书
多媒体视频播放器
1基本功能描述
多媒体视频播放工具是目前计算机必备的一个软件,比较流行的有RealPlayer、
WindowsMediaPlayer以及国产暴风影音等,能够播放RM、RMVB、MP3、MPEG、DAT
等多种格式的视频文件mp3、wma、mdi、wav、avi、dat等格式的音频文件。
用VC++软件设计并编写出一个多媒体视频播放器。
在设计期间,可以选择使用的多
媒体控件,制作与用户交互性较好的应用程序界面。
对于控件有多种,可以自己选择。
本次
课程设计要使用VC++6.0内部的ActiveX控件——WindowsMediaPlayer控件,建立自
己的多媒体播放器。
此多媒体播放器具有打开文件、播放、暂停、停止、关闭、全屏、音量滑块调节、进
度滑块调节、快进、快退、显示隐藏播放列表等基本功能,可以播放*.mp3、*.wma、*.mdi、
*.wav、*.avi、*.dat、*.mpg、*.rmvb等格式的多媒体文件。
同时还具有自制的播放列
表,可以按照列表上的顺序进行一曲、下一曲的播放。
2设计思路
WindowsMediaPlayer是一款Windows系统自带的播放器,支持通过插件增强功能。
其控件作为本次课设的媒体控件可以满足要求。
并且该控件是微软自带的免费控件,通常
每个电脑都应有这个控件,方便设计出来的软件在各个电脑运行。
根据WindowsMediaPlayer和各个按钮控件功能的特点,首先要在初始化中对
CWMPControl,CWMPSettings,CWMPPlaylist,CWMPMedia等类的对象进行绑定和定
义。
播放器的一些基本的功能如播放、暂停、全屏、静音、快进、快退等主要是调用
CWMPControl和CWMPPlayer类中的成员函数来进行实现。
对于打开按钮,需要调用通
用文件对话框类,调用szFileFilter()文件过滤函数和GetFileName()获取文件名函数。
除了以上提到的功能的实现,还有进度滑条Slider_progress和音量滑动条Slider2是通
过对CSliderCtrl类实现的。
1
武汉理工大学《面向对象程序设计》课程设计说明书
打开程序
音量滑块50,新建list.txt,计时器开启
初始化
点击“保
存列表”List.txt
点击“打开”选择文件
删除列显示在list.txt中
表
双击列表框中内容或选中单击“播放”开始播放
点击“暂
点击“停点击“快
点击“下音量OnTimer
停/继续”
止”进”
一首”调节
()
响应intidex=当响应获取位置获取当前播响应
CwnpCon参数返回放位置返回
CwnpCCwnpCo
前光标位
trol类中响应给进度条滑
ontrol置加1,读ntrol类
类中的中的
取idex中CwnpSetti块的SetPos
的pause
stop函fastForwng类中的
文本,返回获取音量返函数和
SetUrl函数ard函数Setvolume回SetPosplay函数数
图1视频播放器流程图
3软件设计
设计平台可以是Win32的操作平台上,使用已安装的VC6.0++进行设计和调试。
在设
2
武汉理工大学《面向对象程序设计》课程设计说明书
计前要确保平台中有WMP控件。
结合之前的设计思路,使用WindowsMediaPlayer等控
件来制作多媒体视频播放器。
若是Win64这与VC6.0++不兼容,可以选择更高的版本。
3.4设计步骤
打开VC++6.0,点击“新建”,在“新建”窗口选择“工程”选项卡。
由于程序是基于
对话框的MFC应用程序使用WindowsMediaPlayer等控件来制作多媒体视频播放器。
设
置好地址位置和工程名后点“确定”。
这里的工程名字可以是自己的名字拼音缩写,也可
以没有任何含义。
图2“新建”对话框示意图
在点击“确定”后进入到了“MFC应用程序向导—步骤1”的设置界面,选择“基本对话
框”,然后点击“下一步”。
3
武汉理工大学《面向对象程序设计》课程设计说明书
图3“MFC应用程序向导”示意图
在剩下的3个步骤中,全部选择默认的设置,不要做随意更改,直至“完成”便实现了
对话框的创建。
然后是插入控件,先把系统初始化的按钮用“Delete”删除,在单击鼠标
右键选择“插入ActiveX控件”,在跳出的对话框中选择“WindowsMediaPlayer”(一般
当电脑安装了WindowsMediaPlayer,其控件也应该存在),点击“确定”。
图4添加“WindowsMediaPlayer”控件示意图
4
武汉理工大学《面向对象程序设计》课程设计说明书
虽然已经插入控件了,但这时的控件还不能使用,因为控件的各种类并没有一起加入
工程类中。
右击鼠标,选择“建立类向导,,”,这时系统跳出对话框提示是否加入来自
控件的类,直接点击“确定”就可以了。
图5“WindowsMediaPlayer”控件类添加示意图
接着对控件关联变量,右击加入的WMP控件,点击“属性”,把ID改为“IDC_player”,
然后打开“建立类向导,,”点到“MemberVariables”页面向IDC_player添加变量。
单
击“ADDVariables”,会弹出图6所示的“Addmembername”对话框,命名为“m_player”,
设为控制“Control”型,点击“OK”。
图6变量命名示意图
关联变量之后才算是真正的添加了该控件,可以发现在关联变量之后,控件工具栏多
5
武汉理工大学《面向对象程序设计》课程设计说明书
了“WindowsMediaPlayer”控件的选项,并且在“SourceFiles”中增加了17个类,相应
的头文件也增加了17个,其中最主要的类为Cwmpplayer4,Cwmpcontrols,Cwmpmedia,
Cwmpsettings四个大类。
Cwmpplayer4类主要是关于对其他类的对象的调用以及基本的控件功能的实现,提供
了与WindowsMediaPlayer控件进行交互的基本方法,其中部分成员函数还能够进一步获
取得到其他相关类对象的实例;Cwmpcontrols类主要是对控件的更多的操作;Cwmpmedia
类主要是对于媒体文件资源的一些操作;Cwmpsettings类主要是对于媒体文件中的一些
基本设置的操作。
3.5界面设计
首先是打开按钮,用于媒体文件的打开;然后依次是播放、暂停、停止、快进、快退、
静音、全屏、退出、上一首、下一首、显示/隐藏按钮,以及视频进度滑块和音量滑块条Slider
控件。
对控件主要进行变量的关联,以及ID的修改,对于普通按钮进行ID修改,结果
如下下表1、表2、表3和表4所示。
表1控件ID以及对应响应函数表
按钮ID控件Caption消息响应函数类型
IDC_BUTTON_open打开OnBUTTONopen()命令按钮
IDC_BUTTON_fullscreen全屏OnBUTTONfullscreen()命令按钮
IDC_BUTTON_play播放OnBUTTONplay()命令按钮
IDC_BUTTON_panse暂停/播放OnBUTTONpanse()命令按钮
IDC_BUTTON_stop停止OnBUTTONstop()命令按钮
IDC_BUTTON_fastforward快进OnBUTTONFastforward()命令按钮
IDC_BUTTON_fasteverse快退OnBUTTONfasteverse()命令按钮
IDC_BUTTON_pre上一曲OnBUTTONpre()命令按钮
IDC_BUTTON_next下一曲OnBUTTONnext()命令按钮
IDC_BUTTON4_mute静音OnBUTTON4mute()命令按钮
IDCANCEL退出无命令按钮
IDC_BUTTON_show隐藏/展开OnBUTTONshow()命令按钮
6
武汉理工大学《面向对象程序设计》课程设计说明书
IDC_BUTTON_save保存列表OnBUTTONsave()命令按钮
IDC_BUTTON_clear删除列表OnBUTTONclear()命令按钮
然后是加入一些关联变量的控件,之前加入了WMPlayer,还要加入类别为“滑块”的
Slider来当调节声音的滑块,还有加入类别为“列表框”的ListControl来充当播放列表。
表2控件ID以及关联变量表
按钮ID控件Caption变量名称类型
IDC_OCX1WMPlayerm_playerCWMPlayer4
IDC_SLIDER_progressSliderm_jinduCSliderCtrl
IDC_SLIDER_volSliderm_volCSliderCtrl
IDC_LIST_MENUListControlm_list2CListBox
在按钮对应的消息响应函数中写程序将要用到表2的变量和WMP控件中的5个类的
函数。
在这五个类中:
Cwmpplayer4类主要是关于对其他类的对象的调用以及基本的控件功
能的实现,是WMP控件函数与外部交流的桥梁,不可缺少。
宁外其部分成员函数还能够
进一步获取得到其他相关类对象的实例;Cwmpcontrols类主要是对控件的更多的操作,
例如播放、暂停;Cwmpmedia类主要是对于媒体文件资源的一些操作,例如获取路径和
名称;Cwmpplaylist类主要是关于播放列表的操作;Cwmpsettings类主要是对于媒体文件
中的一些基本设置的操作。
表3其他类及对应对象表
类名头文件名对象名
CWMPControlsWmpcontrols.hm_Control
CWMPSettingswmpsettings.hm_Setting
CWMPMediawmpmedia.hm_Media
CWMPPlaylistwmpplaylist.hm_Playlist
表4其他数据定义
数据类型变量名数据类型变量名
CStringm_FileNameBOOLflag,flag2,n
CStringm_PathNameintvol
7
武汉理工大学《面向对象程序设计》课程设计说明书
除了对各个控件关联变量以及消息响应函数,还要对对话框类进行消息响应函数的关
联,如当一首歌播放完后的模式选择。
应用到WM_TIMER消息响应函数以及SetTimer()
和KillTimer()函数,如图建立OnTimer函数。
图7添加“WM_TIMER”消息函数示意图
还有菜单的设计,其相对简单,只要名称和ID与表1保持一致就可以了。
在“Resource
File”中右击鼠标添加“MENU”,属性为“IDR_MENU1”。
但是菜单并未与对话窗口有实
质联系,需要将菜单加入到“IDD_SHIFAN_DIALOG”中来,在“IDD_SHIFAN_DIALOG”
窗口空白右键单击,选中菜单“IDR_MENU1”,这样便完成了对菜单的加载。
8
武汉理工大学《面向对象程序设计》课程设计说明书
图8控件按钮分布图
编译运行程序后得到了初步的界面效果图,当然还没有加入函数。
同时在左上角会显
示自己写的工程名“YLJ_Media_Player”,如图8所示。
3.6关键功能的实现
对于各个按钮、列表功能的实现主要是通过对各个函数加入相应的代码,下文将列出
相应的关键代码。
3.3.7“打开”功能的实现
“打开”按钮主要是实现了对打开的文件进行过滤,主要使用了szFileFilter()函数。
点击确
定时,首先是把文件路径传给播放列表中,列表在从文件路径中提取文件名来显示。
然后
又把文件路径通过SetUrl()交给控件读取播放。
voidCYLJ_Media_PlayerDlg:
:
OnBUTTONopen()
{
charszFileFilter[]="所有支持类型
|*.mp3;*.mp4;*.wma;*.dat;*.wav;*.avi;*.mov;*.rmvb;*.mmm;*.mid;*.rmi;*.mpeg;*.mpg|"
"Mp3File(*.mp3)|*.mp3|"
9
武汉理工大学《面向对象程序设计》课程设计说明书
"Mp4File(*.mp4)|*.mp4|"
"WmaFile(*.wma)|*.wma|"
"VideoFile(*.dat)|*.dat|"
"WaveFile(*.wav)|*.wav|"
"AVIFile(*.avi)|*.avi|"
"MovieFile(*.mov)|*.mov|"
"RmvbFile(*.rmvb)|*.rmvb|"
"MediaFile(*.mmm)|*.mmm|"
"MidFile(*.mid;*,rmi)|*.mid;*.rmi|"
"MPEGFile(*.mpeg)|*.mpeg|"
"MPGFile(*.mpg)|*.mpg|"
"AllFile(*.*)|*.*||";//文件类型过滤
CFileDialogdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
POSITIONpos=dlg.GetStartPosition();
if(dlg.DoModal()==IDOK)
{while(pos!
=NULL)
{
m_PathName=dlg.GetNextPathName(pos);
m_list2.AddString(m_PathName);
}
}
}
3.7“播放”、“暂停”、“停止”“全屏”功能的实现
其实和3.3.1中提到一种播放方法一样使用了SetUrl()函数来实现。
voidCYLJ_Media_PlayerDlg:
:
OnBUTTONplay()
{
CStringstr;
10
武汉理工大学《面向对象程序设计》课程设计说明书
intindex=m_list2.GetCurSel();
m_list2.GetText(index,str);
m_player.SetUrl(str);
}
“暂停”和“停止”功能实现方法和播放差不多,只是使用的m_player.GetControls()
中函数改变了。
voidCYLJ_Media_PlayerDlg:
:
OnBUTTONpanse()
{
flag2=!
flag2;
if(flag2){
m_player.GetControls().pause();
}
else{
m_player.GetControls().play();
}
}
voidCYLJ_Media_PlayerDlg:
:
OnBUTTONstop()
{
m_player.GetControls().stop();
}
全屏功能的实现也是调用SetFullScreen(TRUE)函数来实现。
voidCYLJ_Media_PlayerDlg:
:
OnBUTTONfullscreen()
{
m_player.SetFullScreen(TRUE);
}
3.8“上一首”和“下一首”功能实现
“上一首”就是让光标往上移一行,也就是对应的光标变量(index)减去1。
当要判
11
武汉理工大学《面向对象程序设计》课程设计说明书
断光标在第一行的情况,也就是index=0的时候,这时光标应移到最后一首歌曲或视频上。
voidCYLJ_Media_PlayerDlg:
:
OnBUTTONpre()
{
CStringstr;
intindex=m_list2.GetCurSel()-1;//光标减一
if(index<0)index=m_list2.GetCount()-1;//如果播放完第一曲就自动播放最后一首
m_list2.GetText(index,str);//获得当前光标所指的路径字符串
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多媒体 视频 播放
![提示](https://static.bdocx.com/images/bang_tan.gif)