多媒体播放器论文.docx
- 文档编号:30491041
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:44
- 大小:1.05MB
多媒体播放器论文.docx
《多媒体播放器论文.docx》由会员分享,可在线阅读,更多相关《多媒体播放器论文.docx(44页珍藏版)》请在冰豆网上搜索。
多媒体播放器论文
用VisualC++设计的多媒体播放器
学生姓名:
王佳指导老师:
阳慧
摘要本课程设计的目的是制作一个可播放目前主流媒体格式的多媒体播放器,其基本功能应具有媒体播放、音量调节、播放进度选择、暂停、停止以及歌曲信息的查询与添加等,使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频、视频文件。
在课程设计中,系统开发平台为WindowsXPProfessionalSP2,程序设计环境采用VisualC++6.0。
在程序设计中,我利用了Microsoft公司开发的ActiveX控件——可视动画控件ActiveMovie,程序通过调试运行,初步实现了设计目标,并且经过适当完善及美化后,将可以成为一款精简实用的多媒体播放软件。
该播放器是基于MFC集成开发环境,利用ActiveMovie控件实现媒体播放的功能,除了基本的播放控制外,还具有多文件自动顺序循环播放、全屏播放、静音等实用功能。
关键词程序设计;ActiveMovie控件;多媒体;播放器
目录
1.引言……………………………………………………………………………………….1
1.1系统的设计目标和系统的意义………………………………………….……………..1
1.2多媒体播放器将达到的效果…………………………………………………………...2
1.3软件的开发设计思想…………………………………………………………………...2
1.4开发工具的介绍………………………………………………………………………...3
1.5可行性分析和需求分析………………………………………………………………...3
2软件的需求分析和模块设计………………………………………….…………………...4
2.1软件的需求分析………………………………………………………………………..4
2.2软件的模块设计………………………………………………………………………..4
3.数据库设计…………………………………………………..….………………………….5
3.1数据需求分析……………………………………………………….………………….5
3.2数据库概念结构设计………………………………………………………………….5
3.3数据库逻辑结构设计…………………………………………………………………6
3.4数据库结构的实现…………………………………………………………………...7
4多媒体播放器软件设计……………………………………………………………………..7
4.1模块实现函数说明……………………………………………………………………..7
4.2主要变量声明…………………………………………………………………………..8
4.3设计多媒体播放器界面………………………………………………………………..9
4.4播放器模块设计………………………………………………………………………..9
4.5功能模块设计………………………………………………………………………...10
4.6歌曲信息模块的设计…………………………………………………………………13
4.7欢迎动画模块设计…………………………………………………………………...16
5程序实现结果……………………………………………………………………………...17
5.1程序运行流程图……………………………………………………………………...17
5.2播放器实现结果演示………………………………………………………………...18
结束语……………………………………………………………………………………….23
考文献………………………………………………………………………………………...24
附录:
源程序清单
1引言
随着多媒体硬件环境和软件环境的不断完善,多媒体在人类文化生活中扮演的角色越来越重要。
就目前而言,多媒体技术已在商业教育培训、电视会议、声像演示等方面得到了充分应用。
利用多媒体技术可为各类咨询提供服务,如旅游、邮电、交通、商业、金融、宾馆等,多媒体技术还将改变未来的家庭生活,尤其是在大部分计算机软件开发中都涉及多媒体软件技术的应用。
简单说,多媒体(Multimedia)就是多种媒体的结合和使用。
这些媒体可以是图形、图形、声音、文字、视频、动画等表现形式,也可以使显示器、扬声器、电视机等信息的展示设备以及传输信息的光纤、光缆、电磁波等介质,还可以是存储信息的磁带、光盘、磁盘等存储设备。
这些媒体的直接结合、综合使用,就构成多媒体。
确切的定义是,多媒体是一种能够让用户以交互方式将文本、图像、图形、音频、动画、视频等多种信息,经过计算机的软硬件设备获取、操作、编辑、存储等处理过程后,以单独的或合成的形态表现出来的技术和方法。
多媒体播放器就是汇集了多媒体方面的多种技术,使多媒体实现化的一种软件。
1.1系统的设计目标和系统的意义
这个课程设计的目的就是制作一个能够播放音频、视频文件的播放器,并使它具备一些简单的操作处理功能,如播放暂停的控制,音量的调节,多文件自动循环等等。
将这个小型播放软件做得尽量的小巧、实用。
多媒体技术是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。
多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多种功能于一体,借助日益普及的高速信息网,可实现计算机的全球联网和信息资源共享,因此被广泛应用在咨询服务、图书、教育、通信、军事、金融、医疗等诸多行业,并正潜移默化地改变着我们生活的面貌。
多媒体技术已经成为当今比较热门的研究课题,特别是伴随着多媒体技术的网络化,使得多媒体技术的发展前景无限广阔,因此掌握多媒体及多媒体技术的相关知识,了解多媒体技术当前的发展状况及未来的发展前景,并能熟练地进行多媒体技术的开发,对于当前即将毕业的大学生来讲,是很有发展前途的。
基于此,我选择了此课题——多媒体播放器的设计与实现,期望通过对此课题的研究与开发,能深入了解多媒体技术,特别是掌握多媒体技术在媒体播放器中的应用。
1.2多媒体播放器将达到的效果
本课程设计的目的是制作一个可播放目前主流媒体格式的多媒体播放器,其基本功能应具有媒体播放、音量调节、播放进度选择、暂停、停止以及歌曲信息的查询与添加等,使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频、视频文件。
1.3软件的开发设计思想
本系统开发设计思想:
●尽量利用人们现有的软件环境,采用简单快捷的设计方案,从而达到使用方便,容易操作的目的;
●此播放器可以满足大多数人日常使用的需要,并达到操作过程的直观、方便、实用、安全等要求;
●软件采用模块化程序设计方法,既便于软件功能的各种组合和修改,又便于技术维护人员进行补充、维护。
1.4开发工具的介绍
●系统开发环境
操作系统:
WindowsXPProfessional简体中文版
开发平台:
VisualC++6.0简体中文版
●开发平台介绍
VisualC++6.0。
它是微软公司推出的开发Win32应用程序(Windows95/98/2000/XP/NT),面向对象的可视化集成工具。
它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。
之所以选择VisualC++作为开发工具,不仅仅因为曾经有过使用它的经验,看中的更是它的功能强大和使用方便。
它本身不仅具有极其强大的编程能力,它允许选择和管理外接程序,并内含多种实用控件,这些对VisualC++的扩充又进一步增强了它的开发环境的能力。
1.5可行性分析和需求分析
●经济可行性
由于该软件属于个人开发,无需过大的资金投入.所以经济上是可行的。
●技术可行性
VC++6.0中文版作为一个关系型数据库系统,它提供了面向对象的编程技术,可简化数据库管理,使开发应用程序这艰辛的工作就象堆木那样简单方便.另外,VC++6.0中文版开发的应用程序可以独立运行于WINDOWS平台.
VC++6.0中文版,它是运行于Windows95/98和WindowXP平台32位数据库系统,充分发挥了32位微处理器强大的32位数据处理性能.它功能强大,直观易用,支持客户/服务器结构和面向对象编程,提供多种可视化编程工具,支持最新Internet技术,WWW数据库的设计,最新流行的ActiveX等。
VC++6.0中文版完全支持OOP(面向对象)的应用程序设计方法,VC++6.0使用了真正的类,包括继承性,封装性和多态性,用可视方式创建类,查看类及类代码;利用表单向导进行专业级界面设计;对表关系进行可视化查看;可利用OLE自动化来包含其他软件(如Excel,word)中的对象并使用这些软件。
通过VC++6.0对象和事件模型,用户可以快速创建和实现无模式(Modeless)的应用程序;利用生成器和工具栏,开发人员可以快速开发应用程序,而省去编写大量的代码、定义繁多的属性。
总之,VC++6.0中文版是一种适用于专业人员的开发工具。
●人员可行性
我目前时间充足,可以完成开发任务。
而且C++语言和算法的功底还行,可以参与系统的算法设计与开发。
我都有有深厚的文字功底,可以参与用户文档的制作、内部文档整理、后期测试等任务。
2软件的需求分析和模块设计
2.1软件的需求分析
当今互联网上已经有许多种类繁多的媒体播放器,而且都已经制作的相当完善。
一般软件都支持大多数的主流媒体格式,具有十分友好的界面,强大的功能,甚至有些播放器软件(如国产软件“暴风影音”)甚至可以支持外部插件。
但是强大繁多的功能,漂亮的界面带来的副作用就是内存占用量的正比上升。
而我开发制作这款播放器的意图便是利用最小的内存和系统资源进行最基本的视听需要,让我们在享受视觉和听觉的美好享受时不用以大量的系统资源占用为代价。
本程序要求实现的基本功能是实现音/视频的播放,要求主要的控制功能是播放、暂停、声音的大小控制、播放的拖放等功能。
根据这些要求应该有相应的软硬件支持才能获得实现。
可行性方面,我的计算机有声卡和集成显卡,使用的操作系统为微软的WindowsXP,同时也安装了VisualC++6.0中文版。
这个多媒体播放器基本上对软硬件没有太高的要求,在我目前的机器配置下足够实现它的全部功能。
2.2软件的模块设计
该播放器程序共分8个模块,结合ActiveMovie控件可以实现预期的所有功能。
程序的功能模块图如图1:
图1功能模块说明
其中,添加模块用于打开媒体文件并添加到播放列表;关闭模块用于结束循环并关闭播放器;播放模块用于设置定时器开始播放;暂停模块用于暂停播放;停止模块用于结束循环并停止播放;全屏模块用于全屏化播放视频文件;音量模块包含三个函数,分别用于增大音量、降低音量、静音;循环模块包含两个函数,分别用于显示播放模式是否为循环、实现顺序循环播放列表中的文件。
3数据模型分析与设计
3.1数据需求分析
通过对多媒体播放器的功能和数据流程分析,设计的数据项和数据结构如下:
●多媒体静态数据:
主要是包括界面的设置,控键等等。
●多媒体动态数据:
解码信息流、声音流、图象流等。
●歌曲的基本信息:
包括的数据库项有歌曲名称、歌手姓名、作词、作曲,所属专辑名称,发行年月等。
因为本程序中只涉及到歌曲的基本信息,为了简单说明,在数据库中只包含了与歌曲有直接关系的数据项。
3.2数据库概念结构设计
●多媒体播放模块,其数据流图如下:
图2媒体播放数据流图
●歌曲信息的设计规划出的实体有:
歌曲信息实体、歌手实体、作词实体、作曲实体、专辑名称实体。
实体和实体之间的关系E-R图如图3所示:
图3实体之间的关系E-R图
3.3数据库逻辑结构设计
为数据库歌曲信息表添加如下数据表:
图4歌曲信息表结构
图5信息详情表结构
创建数据源
为数据库创建用户DSN,数据源名称为”歌曲信息”如下:
图6创建数据源
3.4数据库结构的实现
在需求分析、概念结构设计的继承上得数据库的逻辑结构之后,我们就可以在VC++6.0数据库系统中实现该逻辑结构。
数据库的逻辑结构,直接使用VC++6.0的项目管理器来实现,在这之前,先建一个名为songinformation的项目,保存在磁盘。
如D:
\songinformation。
存储为D:
\songinformation\database\歌曲信息.dbc。
为数据库添加数据表,存储为D:
\songinformation\database\歌曲信息.dbf.
4多媒体播放器软件设计
4.1模块实现函数说明
这些实现模块功能的具体函数均属于CMediaPlayerDlg类,它是在建立MediaPlayer工程时由MFC建立的一个对话框的类,在该对话框上进行的操作函数即可实现程序所需要的所有功能,其实现函数则是调用ActiveMovie控件的相关函数,从而完成各项具体功能。
各个模块的具体实现函数描述见下表1所示:
表1模块函数列表
模块名称
实现函数
添加模块
voidCMediaPlayerDlg:
:
OnOpen()
关闭模块
voidCMediaPlayerDlg:
:
OnClose()
播放模块
voidCMediaPlayerDlg:
:
OnPlay()
暂停模块
voidCMediaPlayerDlg:
:
OnPause()
停止模块
voidCMediaPlayerDlg:
:
OnStop()
全屏模块
voidCMediaPlayerDlg:
:
OnFulscreeen()
音量模块
voidCMediaPlayerDlg:
:
OnLower()
voidCMediaPlayerDlg:
:
OnUpper()
voidCMediaPlayerDlg:
:
OnMute()
循环模块
voidCMediaPlayerDlg:
:
OnRepeat()
voidCMediaPlayerDlg:
:
OnTimer()
查询模块
voidCMediaPlayerDlg:
:
OnChaxun()
添加模块
voidCMediaPlayerDlg:
:
OnTianjia()
4.2主要变量声明
程序中用到的主要控件有:
1个ActiveMovieControl、1个列表框、12个按钮。
各个控件变量的声明参见下表2:
表2变量声明列表
控件名称
变量类型
变量名
说明
IDC_LIST1
CListBox
m_list
播放列表
IDC_ACTIVEMOVIECONTROL1
CActiveMovie3
m_ActiveMovie
可视动画控件
IDC_OPEN
CButton
m_Open
打开、添加文件
IDC_STOP
CButton
m_Stop
停止播放
IDC_CLOSE
CButton
m_Close
关闭当前播放
IDC_LOWER
CButton
m_Lower
降低音量
IDC_PLAY
CButton
m_Play
循环播放
IDC_PAUSE
CButton
m_Pause
暂停
IDCANCEL
CButton
m_Exit
退出
IDC_UPPER
CButton
m_Upper
增大音量
IDC_FULSCREEEN
CButton
m_FullScreen
全屏
IDC_REPEAT
CButton
m_Repeat
循环控制
IDC_EDIT1
CString
m_Edit1
查询编辑框
IDC_GEQU
CString
m_Gequ
歌曲名称编辑框
IDC_GESHOU
CString
m_Geshou
歌手编辑框
IDC_ZUOCI
CString
m_Zuoci
作词编辑框
IDC_ZUOQU
CString
m_Zuoqu
作曲编辑框
IDC_ZHUANJI
CString
m_Zhuanji
专辑名称编辑框
4.3设计多媒体播放器界面
播放器的主界面设计如图7:
图7主界面
在主界面添加控件,为控件添加成员变量与控件变量并邦定。
4.4播放器模块设计
为界面添加ActiveMovieControlObject控件,以及打开、关闭、播放、暂停、停止、全屏、循环等按钮控件,ActiveMovieControlObject控件的添加过程如图8所示:
图8添加ActiveMovieControlObject控件
ActiveMovie关键函数说明
可视动画控件ActiveMovieControlObject是Microsoft公司开发的ActiveX控件,为程序员提供了在该层次上控制媒体设备接口的能力。
它包含一组高层次的独立于设备的命令,可以控制音频和视频外设,我们不必关心具体的设备便可以对CD、视盘机、波形音频设备、视频播放设备和MIDI设备等媒体设备进行控制,也可以理解成设备面板上的一排按键,通过选择不同的按键(发送不同的命令)即可让设备完成各种功能,而不必关心设备的内部实现,它是一种主要实现音/视频播放的方法。
下面对播放器程序需要调用的相关函数做简要说明:
(1)播放文件的函数:
voidCActiveMovie3:
:
Run()
{
InvokeHelper(0x60020001,DISPATCH_METHOD,VT_EMPTY,NULL,NULL);
}
(2)暂停播放的函数:
voidCActiveMovie3:
:
Pause()
{
InvokeHelper(0x60020002,DISPATCH_METHOD,VT_EMPTY,NULL,NULL);
}
(3)停止播放的函数:
voidCActiveMovie3:
:
Stop()
{
InvokeHelper(0x60020003,DISPATCH_METHOD,VT_EMPTY,NULL,NULL);
}
(4)设置音量的函数:
voidCActiveMovie3:
:
SetVolume(longnNewValue)
{
staticBYTEparms[]=VTS_I4;
InvokeHelper(0x13,DISPATCH_PROPERTYPUT,VT_EMPTY,NULL,parms,nNewValue);}
4.5功能模块设计
程序中的播放模块、暂停模块、停止模块、音量模块等功能模块只需要直接调用控件中的函数即可实现,为各控件添加成员变量如图9所示:
图9为控件添加成员变量
(1)为了将所需播放的文件加入列表框,我们采用OnOpen()函数来显示"打开"对话框通过该对话框选择要执行的文件。
以便为以后调用作准备。
代码如下:
voidCMediaPlayerDlg:
:
OnOpen()
{charszFileFilter[]=
"所有文件(*.*)|*.*||";//可选择不同格式的媒体文件
CFileDialogfileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
if(fileDialog.DoModal()==IDOK){//消息响应函数
CStringm_FileName=fileDialog.GetPathName();//选择文件
m_list.AddString(m_FileName);//加入到列表框
}
}
(2)为了循环播放,我们利用定时器来工作,采用OnTimer()函数来激活定时器,代码如下:
voidCMy1Dlg:
:
OnTimer(UINTnIDEvent)
{
CStringm_filename; //定义文件变量
doubleCurPos=m_ActiveMovie.GetCurrentPosition();//获得播放位置
if(CurPos==0)
{
m_list.SetCurSel(0);//选择列表框的第一个文件
m_list.GetText(0,m_filename);
m_ActiveMovie.SetAutoStart
(1);//设置自动播放
m_ActiveMovie.SetFileName(m_filename);//设置文件
m_ActiveMovie.Run();//播放
m_list.GetCurSel();//获得播放文件
m_list.InsertString(-1,m_filename);//插入列表框最后
m_list.DeleteString(0);//删除用过的文件
}
CDialog:
:
OnTimer(nIDEvent);
}
(3)全屏播放功能调用了m_ActiveMovie.SetMovieWindowSize函数,代码如下:
voidCMediaPlayerDlg:
:
OnFulscreeen()//全屏函数,实现全屏播放视频的功能
{
m_ActiveMovie.Pause();//暂停播放
m_ActiveMovie.SetFullScreenMode(true);//设置全屏播放属性为真,即开启全屏播放
m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED);//设置播放窗口大小为最大
m_ActiveMovie.Run();//继续播放
}
(4)音量模块由减小、增大和静音三部分组成,均通过调用m_ActiveMovie.SetVolume函数实现,代码如下:
voidCMediaPlayerDlg:
:
OnLower()//减小音量函数
{
longVolume=m_ActiveMovie.GetVolume();//获得当前音量赋值给Volume变量
m_ActiveMovie.Pause();//暂停播放
m_ActiveMovie.SetVolume(Volume-300);//设置音量为原音量-300
m_ActiveMovie.Run();//继续播放
}
voidCMediaPlayerDlg:
:
OnUpper()//增大音量函数
{
longVolume=m_ActiveMovie.GetVolume();//获得当前音量赋值给Volume变量
m_ActiveMovie.Pause();//暂停播放
m_ActiveMovie.SetVolume(Volume+300);//设置音量为原音量+300
m_ActiveMovie.Run();//继续播放
}
voidCMediaPlayerDlg:
:
OnMute()//静音函数,实现静音功能
{
m_ActiveMovie.Pause();//暂
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多媒体 播放 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)