基于MFC的多媒体播放器制作论文.doc_第1页
基于MFC的多媒体播放器制作论文.doc_第2页
基于MFC的多媒体播放器制作论文.doc_第3页
基于MFC的多媒体播放器制作论文.doc_第4页
基于MFC的多媒体播放器制作论文.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多媒体技术教程 课程论文 题目:基于vc的多媒体播放器的设计与实现 学 院 计算机学院 专业班级 1102 学 号姓 名 马敏 指导老师 王勇智 日 期 2013.6.20 多媒体播放器的设计摘要 本文主要是开发了一款简单的多媒体播放器。可以播放多种格式的音频、视频文件,该播放器实现了的基本功能包括:音频视频文件的打开、添加到菜单、媒体的播放、音量大小的调节、播放时间的拖动、暂停播放、停止以及歌曲的添加等。使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频、视频文件。在毕业设计中,系统开发平台为windows xp操作系统,程序设计环境采用visual c+ 6.0。在程序设计中,利用了微软公司开发的activex控件可视动画控件activemovie,程序通过调试运行,初步实现了设计目标,本程序是基于mfc集成开发环境,利用activemovie控件实现媒体播放的功能的,除了基本的播放控制外,还具有多文件快进、快退、全屏播放、静音等实用功能。关键字:多媒体;播放器;active控件一开发工具及其相关理论 visual c+6.0不仅是一个c+编译器,而且是一个基于windows操作系统的可视化集成开发环境(integrated development environment,ide)。visual c+6.0由许多组件组成,包括编辑器、调试器以及程序向导appwizard、类向导class wizard等开发工具。 这些组件通过一个名为developer studio的组件集成为和谐的开发环境【8】。mfc(microsoft foundation class)是用来编写windows应用程序的c+类集,其中封装了大部分windowsapi函数和windows控件,使用mfc类库和visual c+提供的高度可视的应用程序开发工具,可使应用程序开发变得简单,提高代码的可靠性和可重用性。随着多媒体性能的极大提升,程序中经常要播放一段视频或者一段音频,如果能够简单地插入音频和视频,将极大缩短程序的开发时间。本文基于mfc在visual 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+只是一个编译器,或者说是一种编译器+源程序编辑器的ide,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控件包容器或web页,activex在外观上和使用上和普通控件一样,还提供属性页以支持在包容器的设计阶段对activex控件的属性进行可视化设计。activemovie控件是微软公司推出的用于多媒体程序设计的控件,它提供了非常完善的音频和视频媒体文件的回放功能,能支持多种文件格式,从最常见的wav文件和avi文件到使用mpeg压缩格式的vcd视频文件,都可以正常的进行播放。控件能根据文件后缀进行自动判别设备类型,并完成相应的控制。因此,若正在编写的应用程序需要提供多媒体支持,那么使用activemovie控件是一个很好的主意。事实上,很多优秀的多媒体应用程序,其内部的多媒体回放就是利用activemovie控件来实现。只要精心地设计应用程序的用户界面,我们一样可以开发出功能齐全、外观漂亮、具有相当水准的多媒体播放器。二多媒体播放器功能图 该播放器分为十个模块,根据activemovie控件实现它们各自相应的功能。多媒体播放器打开模块关闭模块播放模块暂停模块停止模块全频模块音量模块循环模块快进退模块列表模块 打开模块:打开目标文件,如音频、视频文件。 关闭模块:关闭播放器。 播放模块:播放音频、视频文件,播放列表。 暂停模块:暂时停止正在播放的音/视频文件。 停止模块:结束当前音/视频文件的播放,但不退出播放器。全频模块:实现文件的全频播放。音量模块:调节音量大小,还有静音。循环模块:实现播放列表中的全部文件的循环播放。快进退模块:调节播放的快进和快退。列表模块:显示歌曲。三多媒体编写设计过程1. 模块实现函数说明这些实现模块功能的具体函数均属于cmediaplayerdlg类,它是在建立mediaplayer工程时由mfc建立的一个对话框的类,在该对话框上进行的操作函数即可实现程序所需要的所有功能,其实现函数则是调用activemovie控件的相关函数,从而完成各项具体功能。各个模块的具体实现函数描述见下表所示:模块名称实现函数打开模块void cvedioplayerdlg:onopen()关闭模块void cvedioplayerdlg:onclose()播放模块void cvedioplayerdlg: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 cvedioplayerdlg:onrepeat()void cvedioplayerdlg:ontimer()快进退模块void cvedioplayerdlg:ononquiet() 添加模块void cvedioplayerdlg:onlist1() 2. 主要变量声明程序中用到的主要控件有:1个activemoviecontrol 、1个列表框、12个按钮。各个控件变量的声明参见下表2:控件名称变量类型变量名说明idc_list1clistboxm_playlist播放列表idc_activemoviecontrol1cactivemovie3m_activemovie可视动画控件idc_opencbuttonm_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快进idc_quitcbuttonm_quit快退3. 设计多媒体播放器的界面播放器主界面设计如下图所示: (1)打开函数void cvedioplayerdlg:onopen()char szfilefilter=mp3 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)|*.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();pathname.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 cactivemovie3: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_activemovie.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.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.setcurrentposition(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.setfilename(str);filename=str;(8)全屏播放 void cvedioplayerdlg:onfullscreen()/全屏播放 m_activemovie.pause();m_activemovie.setfullscreenmode(true);m_activemovie.setmoviewindowsize(sw_showmaximized);m_activemovie.run(); 4 程序实现结果1. 程序运行流程图 该播放器程序运行过程的流程图如下图所示:添加文件播放播放控制(暂停、循环等)添加文件退出退出开始ynnny2. 播放器实现结果演示 (1)程序打开运行后出现如下图所示界面:(2) 单击“打开”按钮,可以在从电脑添加自己喜欢的歌曲或这视频:(4) 在播放列表单击播放即可播放自己喜欢的音乐或视频点击播放即可:(5) 从另外一个界面打开便是关于自己版权设计界面: 图为“关于”信息这基本上就是整个程序的运行界面展示,当然还有许多静音,快进,快退等功能只能是用户者亲自使用亲身体会感受了。五课程心得与总结 通过这次的多媒体播放器的设计,让我们切身的感受到了计算机技术在多媒体中的应用是多么的广泛和实际。同时,这也是理论知识的又一次实践,在这次的设计中利用vc+6.0编写出一个多媒体播放器,在这个过程中让我很有成就感,虽然很多都是在老师的提示下完成的,但是,当一个成品有自己编写出来的时候

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论