基于MFC的多媒体播放器制作论文.doc

上传人:laozhun 文档编号:2385860 上传时间:2023-02-17 格式:DOC 页数:12 大小:273KB
返回 下载 相关 举报
基于MFC的多媒体播放器制作论文.doc_第1页
第1页 / 共12页
基于MFC的多媒体播放器制作论文.doc_第2页
第2页 / 共12页
基于MFC的多媒体播放器制作论文.doc_第3页
第3页 / 共12页
基于MFC的多媒体播放器制作论文.doc_第4页
第4页 / 共12页
基于MFC的多媒体播放器制作论文.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《基于MFC的多媒体播放器制作论文.doc》由会员分享,可在线阅读,更多相关《基于MFC的多媒体播放器制作论文.doc(12页珍藏版)》请在三一办公上搜索。

1、 多媒体技术教程 课程论文 题目:基于VC的多媒体播放器的设计与实现 学 院 计算机学院 专业班级 1102 学 号 14112400645 姓 名 马敏 指导老师 王勇智 日 期 2013.6.20 多媒体播放器的设计摘要 本文主要是开发了一款简单的多媒体播放器。可以播放多种格式的音频、视频文件,该播放器实现了的基本功能包括:音频视频文件的打开、添加到菜单、媒体的播放、音量大小的调节、播放时间的拖动、暂停播放、停止以及歌曲的添加等。使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频、视频文件。在毕业设计中,系统开发平台为Windows XP操作系统,程序设计环境采用Visual

2、 C+ 6.0。在程序设计中,利用了微软公司开发的ActiveX控件可视动画控件ActiveMovie,程序通过调试运行,初步实现了设计目标,本程序是基于MFC集成开发环境,利用ActiveMovie控件实现媒体播放的功能的,除了基本的播放控制外,还具有多文件快进、快退、全屏播放、静音等实用功能。关键字:多媒体;播放器;Active控件一开发工具及其相关理论 Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调

3、试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境【8】。MFC(Microsoft Foundation Class)是用来编写Windows应用程序的C+类集,其中封装了大部分WindowsAPI函数和Windows控件,使用MFC类库和Visual C+提供的高度可视的应用程序开发工具,可使应用程序开发变得简单,提高代码的可靠性和可重用性。随着多媒体性能的极大提升,程序中经常要播放一段视频或者一段音频,如果能够简单地插入音频和视频,将极大缩短程序的开发时间。本文基于MFC在Visu

4、al C+环境下利用Windows Media Player控件实现了音频视频文件的播放。MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C+环境下编写应用程序的一个框架和引擎,VC+是WinDOS下开发人员使用的专业C+ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC+血肉相连的部分(注意C+和VC+的区别:C+是一种程序设计语言,是一种大家都承认的软件编制的通用规范,而VC+只是一个编译器,或者说是一种编译器+源程序编辑器的I

5、DE,WS,PlatForm,这跟Pascal和Delphi的关系一个道理,Pascal是Delphi的语言基础,Delphi使用Pascal规范来进行Win下应用程序的开发和编译,却不同于Basic语言和VB的关系,Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BC+集成的VCL一样是一个非外挂式的软件包,类库,只不过MFC类是微软为VC+专配的。ActiveX控件是基于COM的可重用组件,主要用于插入ActiveX控件包容器或W

6、eb页,ActiveX在外观上和使用上和普通控件一样,还提供属性页以支持在包容器的设计阶段对ActiveX控件的属性进行可视化设计。ActiveMovie控件是微软公司推出的用于多媒体程序设计的控件,它提供了非常完善的音频和视频媒体文件的回放功能,能支持多种文件格式,从最常见的WAV文件和AVI文件到使用MPEG压缩格式的VCD视频文件,都可以正常的进行播放。控件能根据文件后缀进行自动判别设备类型,并完成相应的控制。因此,若正在编写的应用程序需要提供多媒体支持,那么使用ActiveMovie控件是一个很好的主意。事实上,很多优秀的多媒体应用程序,其内部的多媒体回放就是利用ActiveMovie

7、控件来实现。只要精心地设计应用程序的用户界面,我们一样可以开发出功能齐全、外观漂亮、具有相当水准的多媒体播放器。二多媒体播放器功能图 该播放器分为十个模块,根据ActiveMovie控件实现它们各自相应的功能。多媒体播放器打开模块关闭模块播放模块暂停模块停止模块全频模块音量模块循环模块快进退模块列表模块 打开模块:打开目标文件,如音频、视频文件。 关闭模块:关闭播放器。 播放模块:播放音频、视频文件,播放列表。 暂停模块:暂时停止正在播放的音/视频文件。 停止模块:结束当前音/视频文件的播放,但不退出播放器。全频模块:实现文件的全频播放。音量模块:调节音量大小,还有静音。循环模块:实现播放列表

8、中的全部文件的循环播放。快进退模块:调节播放的快进和快退。列表模块:显示歌曲。三多媒体编写设计过程1. 模块实现函数说明这些实现模块功能的具体函数均属于CMediaPlayerDlg类,它是在建立MediaPlayer工程时由MFC建立的一个对话框的类,在该对话框上进行的操作函数即可实现程序所需要的所有功能,其实现函数则是调用ActiveMovie控件的相关函数,从而完成各项具体功能。各个模块的具体实现函数描述见下表所示:模块名称实现函数打开模块void CVedioplayerDlg:OnOpen()关闭模块void CVedioplayerDlg:OnClose()播放模块void CVe

9、dioplayerDlg:OnPlay()void CVedioplayerDlg:OnPlaylist() 暂停模块void CVedioplayerDlg:OnPause()停止模块void CVedioplayerDlg:OnStop()全屏模块void CVedioplayerDlg:OnFulscreeen()音量模块void CVedioplayerDlg:OnLower()void CVedioplayerDlg:OnUpper()void CVedioplayerrDlg:OnMute()void CVedioplayerDlg:OnOnquiet() 循环模块void CVe

10、dioplayerDlg:OnRepeat()void CVedioplayerDlg:OnTimer()快进退模块void CVedioplayerDlg:OnOnquiet() 添加模块void CVedioplayerDlg:OnList1() 2. 主要变量声明程序中用到的主要控件有:1个ActiveMovieControl 、1个列表框、12个按钮。各个控件变量的声明参见下表2:控件名称变量类型变量名说明IDC_LIST1CListBoxm_Playlist播放列表IDC_ACTIVEMOVIECONTROL1CActiveMovie3m_ActiveMovie可视动画控件IDC_O

11、PENCButtonm_Open打开、添加文件IDC_STOPCButtonm_Stop停止播放IDC_CLOSECButtonm_Close关闭当前播放IDC_LOWERCButtonm_Lower降低音量IDC_PLAYCButtonm_Play循环播放IDC_PAUSECButtonm_Pause暂停IDCANCELCButtonm_Exit退出IDC_UPPERCButtonm_Upper增大音量IDC_FULSCREEENCButtonm_FullScreen全屏IDC_REPEATCButtonm_Repeat循环控制IDC_ACCELATECButtonm_Accelate快进I

12、DC_QUITCButtonm_Quit快退3. 设计多媒体播放器的界面播放器主界面设计如下图所示: (1)打开函数void CVedioplayerDlg:OnOpen()char szFileFilter=待添加的隐藏文字内容3Mp3 File(*.mp3)|*.mp3|Wma File(*.wma)|*.wma|Video File(*.dat)|*.dat|Wave File(*.wav)|*.wav|AVI File(*.avi)|*.avi|Movie File(*.mov)|*.mov|Media File(*.mmm)|*.mmm|Mid File(*.mid;*,rmi)|*

13、.mid;*.rmi|MPEG File(*.mpeg)|*.mpeg|All File(*.*)|*.*|;/文件类型过滤CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);POSITION pos=dlg.GetStartPosition(); if(dlg.DoModal()=IDOK)while(pos!=NULL)FileName=dlg.GetNextPathName(pos);m_list.AddString(FileName);CString PathName=dlg.GetPathName();PathN

14、ame.MakeUpper();/这个函数可以将CString字符转化为一个大写的字符串m_ActiveMovie.SetFileName(PathName);(2)播放文件的函数: void CActiveMovie3:Run()InvokeHelper(0x60020001, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);(3)暂停播放的函数: void CActiveMovie3:Pause()InvokeHelper(0x60020002, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);(4)停止播放的函数: void C

15、ActiveMovie3:Stop()InvokeHelper(0x60020003, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);(5)设置音量模块的函数:void CVedioplayerDlg:OnLower()/减少音量long Volume=m_ActiveMovie.GetVolume();m_ActiveMovie.Pause();m_ActiveMovie.SetVolume(Volume-100);m_ActiveMovie.Run();void CVedioplayerDlg:OnUpper()/增加音量long Volume=m_Acti

16、veMovie.GetVolume();m_ActiveMovie.Pause();m_ActiveMovie.SetVolume(Volume+100);m_ActiveMovie.Run();void CVedioplayerDlg:OnOnquiet() /静音long temp;Temp=m_ActiveMovie.GetVolume();if(temp-4000)m_ActiveMovie.Pause();m_ActiveMovie.SetVolume(-4000);m_ActiveMovie.Run();elsem_ActiveMovie.Pause();m_ActiveMovie

17、.SetVolume(temp+4000);m_ActiveMovie.Run();(6)快进退模块的函数void CVedioplayerDlg:OnAccelate() /快进 double temp;temp=m_ActiveMovie.GetCurrentPosition();m_ActiveMovie.SetCurrentPosition(temp+10); void CVedioplayerDlg:OnQuit() /快退 double temp;temp=m_ActiveMovie.GetCurrentPosition();m_ActiveMovie.SetCurrentPosi

18、tion(temp-10);(7)播放列表void CVedioplayerDlg:OnPlaylist() /列表窗口的显示 flag=!flag;if(!flag)SetWindowPos(NULL,0,0,545,450,SWP_NOMOVE);elseSetWindowPos(NULL,0,0,710,450,SWP_NOMOVE);void CVedioplayerDlg:OnList1() /单击列表选项 CString str;int index=m_list.GetCurSel();m_list.GetText(index,str);m_ActiveMovie.SetFileN

19、ame(str);FileName=str;(8)全屏播放 void CVedioplayerDlg:OnFullscreen()/全屏播放 m_ActiveMovie.Pause();m_ActiveMovie.SetFullScreenMode(true);m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED);m_ActiveMovie.Run(); 四 程序实现结果1. 程序运行流程图 该播放器程序运行过程的流程图如下图所示:添加文件播放播放控制(暂停、循环等)添加文件退出退出开始YNNNY2. 播放器实现结果演示 (1)程序打开运行后出现

20、如下图所示界面:(2) 单击“打开”按钮,可以在从电脑添加自己喜欢的歌曲或这视频:(4) 在播放列表单击播放即可播放自己喜欢的音乐或视频点击播放即可:(5) 从另外一个界面打开便是关于自己版权设计界面: 图为“关于”信息这基本上就是整个程序的运行界面展示,当然还有许多静音,快进,快退等功能只能是用户者亲自使用亲身体会感受了。五课程心得与总结 通过这次的多媒体播放器的设计,让我们切身的感受到了计算机技术在多媒体中的应用是多么的广泛和实际。同时,这也是理论知识的又一次实践,在这次的设计中利用VC+6.0编写出一个多媒体播放器,在这个过程中让我很有成就感,虽然很多都是在老师的提示下完成的,但是,当一

21、个成品有自己编写出来的时候,那种成就感是可想而知的。在工作和生活中多媒体技术和我们息息相关,在计算机技术不断普及的今天,掌握多媒体技术对我们而言是相当重要的,这也是我们未来学习的重点,通过这次的学习也让我们学会了自学软件的技巧,对于今后的学习也是很有帮助的。这次课程设计是一个理论与实践结合的过程,让我明白理论知识往往是不够的,只有把所学的理论与实际行动相结合,才会提高自己的综合实际能力和独立思考能力。在设计的过程中我们都会遇到很多的问题,但往往是一个小问题都会导致实验的失败,这就要我们花大量的时间去思索和改正,这是一个很艰辛的过程,但同时也是你收获最大的过程。实验往往是一个苦中有乐的过程,我希

22、望在以后的实验学习中自己能独立思考,同时也要认真去完成,这样既能学到知识,也能让自己的实践操作得到锻炼。最后,我要感谢我身边同学,他们帮我学到了很多,同时也付出了很多,通过与他们的讨论我也收获可很多,并且问题总能迎刃而解,也感谢老师的细心指导,让我顺利的完成了课程设计。我想这就是学习的魅力,带给我们知识还有快乐。参考文献1 龚进明,戴红芳. 多媒体资源播放器的设计与开发J. 常熟高专学报, 2003,(02) . 2 刘雅琴,夏玉杰. 基于MFC的多媒体播放器的实现J. 信息技术, 2009,(03) . 3 龚月琴. 多功能媒体播放器的设计与开发J. 福建电脑, 2004,(07) . 4 5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号