《多媒体播放器的设计与实现报告论文毕业文章_论文-毕业文章.pdf》由会员分享,可在线阅读,更多相关《多媒体播放器的设计与实现报告论文毕业文章_论文-毕业文章.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、多媒体技术课程论文 题 目:基于MFC的多媒体播放器的设计与实现 专 业:_ 班 级:_ 姓 名:_ 学 号:_ 指导老师:_ 摘要:本程序是基于 MFC集成开发环境,利用 ActiveMovie 控 件实现媒体播放的功能的多媒体播放器。具有打开文件、播放、暂停、全屏、音量调节、静音、快进、快退等基本播放功能。系 统开发平台为Windows 7操作系统,程序设计环境采用 Visual C+6.0。关键字:MFC ActiveMovie,多媒体发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体
2、开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种工具轮换操作灵活性较大也指它的内部编译器集成开发环境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用而生成随着析构函数的调用而消失而窗口则是系统的一个1开发工具及相关知识介绍 MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个 C+类库,主要封
3、装了大部分的 win dows API函数,vc+是微软公司开发的C/C+的集成开发环境,所谓集 成开发环境,就是说利用它可以编辑,编译,调试,而不是使用 多种工具轮换操作,灵活性较大。vC 也指它的内部编译器,集成 开发环境必须有一个编译器内核,例如 DevC+其中一个编译器内 核就是gcc。MFC除了是一个类库以外,还是一个框架,在 vc+里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同 时它使用了 mfcxx.dll。xx 是版本,它封装了 mfc 内核,这样你 就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复 的东西,但是由于是通用框架,没有最好的针对性,当然也就丧
4、失了一些灵活性和效率。一个MFC窗口对象是一个C+CWn(类(或派生类)的实例,是程序直接创建的。在程序执行中它随着窗口类构造函数的调用 而生成,随着析构函数的调用而消失。而 Windows窗口则是 Win dows系统的一个内部数据结构的实例,由一个“窗口句柄”标 识,Windows系统创建它并给它分配系统资源。Windows窗口在MFC 窗口对 象创建之后,由CWn(类的Create成员函数创建,“窗口 句柄”保存在窗口对象的 m_hWn成员变量中。Win dows窗 口可以 被一个程序销毁,也 可以被用户的动作销毁。ActiveX控件是基于 COM的可重用组件,主要用于插入 Active
5、X控发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种工具轮换操作灵活性较大也指它的内部编译器集成开发环境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用而生成随着析构函数的调用而消失而窗口则是
6、系统的一个件包容器或 Web页,ActiveX在外观上和使用上和普通 控件一样,还提供属性页以支持在包容器的设计阶段对 ActiveX 控件的属性进行可视化设计。现在多媒体技术正向二个方而发展:一是网络化发展趋势,与宽带网络通信等技术相互结合,使多媒体技术进入科研设计、企业管理、办公自动化、远程教育、远程医疗、检索咨询,文化 娱乐、自动测控等领域;二是多媒体终端的部件化、智能化和嵌 入化,提高计算机系统本身的多媒体性能,开发智能化家电。多媒体有三个关键特性:多样性、交互性和集成性。2系统的功能说明 2.1 打开文件按钮 单击打开按钮,选定需要播放的文件的路径并打开,则选 定的文件将被添加到播放
7、列表中。2.2 播放/暂停文件按钮 单击暂停按钮,则播放暂停。2.3 播放进度滑块 用户可以通过滑动播放进度滑块进行对播放进程的控制,实现 音频视频文件播放的快进和快退。2.4 随机/顺序/单曲/全曲循环选项 当用户勾选随机/顺序/单曲/全曲循环时,播放模式会切换到 会转变到相应的模式下。2.5 上一曲/下一曲按钮 发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种工具轮换操作灵活性较大也指它的内部编译器集成开发环
8、境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用而生成随着析构函数的调用而消失而窗口则是系统的一个当用户单击该按钮时,播放的文件相应变化。2.6 音量调节滑块 用户可以通过对音量调节滑块进行调节从而控制音量的大小。2.7 静音选项 选择该选项时将会静音。2.8 停止播放按钮 单击该按钮,停止播放.2.9 退出程序按钮 单击退出程序按钮从播放器中退出。3.所设计系统实现的各
9、模块介绍 3.1 流程图设计 打开._ J 发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种工具轮换操作灵活性较大也指它的内部编译器集成开发环境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用
10、而生成随着析构函数的调用而消失而窗口则是系统的一个全 曲 循 环 3.2 各模块介绍 多媒体播放器 随 机 播 放 本多媒体播放系统从界面上看分为四个部分:播放界面、播放控 制、播放列表和播放模式。(1)播放界面:可以看到背景图,还可以方便用户调整播放进度、音量大小,也能对音频和视频进行播放和暂停的控制。(2)播放模式:有顺序播放、循环播放、随机选择三种模式。用 户通过对这三种模式的选择可以控制音频视频的播放顺序。(3)播放列表:播放列表记录了被用户添加的需要播放的文件,方便用户在添加文件之后可以迅速找到需要播放的文件。(4)播放控制:主要包括媒体文件的打开、播放进度的调整、暂 停、停止、全屏
11、和程序的退出。4.各模块源程序及主要部分 4.1.打开文件 void CMediaPlayerDlg:OnOpen()m_listCtrl.SetFocus();CString str;TCHAR szFilter=_T(Mp3 File(*.mp3)|*.mp3|Wma File(*.wma)|*.wma|Video File(*.mov)|*.mov|Media File(*.mpeg)|*.mpeg|All File(*.mmm)|*.mmm|Mid File(*.mid;*,rmi)|*.mid;*.rmi|MPEG File(*.*)|*.*|);CFileDialog fileDl
12、g(TRUE,NULL,File(*.dat)|*.dat|Wave File(*.wav)|*.wav|A VI File(*.avi)|*.avi|Movie NULL,OFN_HIDEREADONL Y|OFN_OVERWRITEPROMPT,szFilter,this);打 开 文 件 播放功能 播放列表 播放模式 顺 序 播 放 单 曲 循 环 播放调节 发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种
13、工具轮换操作灵活性较大也指它的内部编译器集成开发环境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用而生成随着析构函数的调用而消失而窗口则是系统的一个CString strFilePath;if(IDOK=fileDlg.DoModal()strFilePath=fileDlg.GetPathName();strFilePath.MakeUpper();m_player.S
14、etUrl(strFilePath);m_media=static_cast(m_player.newMedia(strFilePath);m_list.appendItem(m_media);m_listCtrl.InsertItem(count,m_media.GetName();m_listCtrl.SetItemText(count,1,_T(m_media.getItemInfo(FileType);m_listCtrl.SetItemText(count,2,_T(m_media.GetDurationString();m_listCtrl.SetItemText(count,3,
15、_T(strFilePath);m_listCtrl.SetItemText(count+,4,_T(m_media.getItemInfo(Duration);POSITION pos;pos=m_listCtrl.GetFirstSelectedItemPosition();IndexInFieldList=m_listCtrl.GetNextSelectedItem(pos);m_listCtrl.SetItemState(IndexInFieldList,LVIS_SELECTED,LVIS_SELECTED);m_player.SetUrl(m_listCtrl.GetItemTex
16、t(0,3);m_listCtrl.SetItemState(0,LVIS_SELECTED,LVIS_SELECTED);4.2 播放 void CMediaPlayerDlg:OnPlay()if(m_list.GetCount()-4000)发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种工具轮换操作灵活性较大也指它的内部编译器集成开发环境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是
17、一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用而生成随着析构函数的调用而消失而窗口则是系统的一个m_ActiveMovie.Pause();m_ActiveMovie.SetVolume(-4000);m_ActiveMovie.Run();else m_ActiveMovie.Pause();m_ActiveMovie.SetVolume(temp+4000);m_ActiveMovie.Run();4.17 快进退模块/快进 void
18、 CMediaPlayerDlg:OnForward()double t=m_control.GetCurrentPosition();m_control.SetCurrentPosition(t=t+10);/快退 void CMediaPlayerDlg:OnReverse()double t=m_control.GetCurrentPosition();m_control.SetCurrentPosition(t=t-10);4.18 上一曲、下一曲/上一曲 void CMediaPlayerDlg:OnLast()m_listCtrl.SetFocus();POSITION pos;C
19、String strName;UINT flag1=LVIS_SELECTED|LVIS_FOCUSED;pos=m_listCtrl.GetFirstSelectedItemPosition();IndexInFieldList=m_listCtrl.GetNextSelectedItem(pos);if(IndexInFieldList=-1)AfxMessageBox(列表内没有被选中项!);return;if(IndexInFieldList=0)AfxMessageBox(已经到了列表头部!);m_listCtrl.SetItemState(IndexInFieldList,flag
20、1,flag1);return;发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种工具轮换操作灵活性较大也指它的内部编译器集成开发环境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用而生成随着析
21、构函数的调用而消失而窗口则是系统的一个m_listCtrl.SetItemState(IndexInFieldList,LVIS_SELECTED,LVIS_SELECTED);m_listCtrl.SetItemState(IndexInFieldList-1,flag1,flag1);strName=m_listCtrl.GetItemText(IndexInFieldList-1,3);KillTimer(0);m_control.stop();m_player.SetUrl(strName);m_control.SetCurrentPosition(0.01);m_control.pl
22、ay();SetTimer(0,20,NULL);/下一曲 void CMediaPlayerDlg:OnNext()m_listCtrl.SetFocus();POSITION pos;CString strName;UINT flag1=LVIS_SELECTED|LVIS_FOCUSED;pos=m_listCtrl.GetFirstSelectedItemPosition();IndexInFieldList=m_listCtrl.GetNextSelectedItem(pos);if(IndexInFieldList=-1)AfxMessageBox(列表内没有被选中项!);retu
23、rn;if(IndexInFieldList=m_listCtrl.GetItemCount()-1)AfxMessageBox(已经到了列表末尾!);m_listCtrl.SetItemState(IndexInFieldList,flag1,flag1);return;m_listCtrl.SetItemState(IndexInFieldList,LVIS_SELECTED,LVIS_SELECTED);m_listCtrl.SetItemState(IndexInFieldList+1,flag1,flag1);strName=m_listCtrl.GetItemText(IndexI
24、nFieldList+1,3);KillTimer(0);m_control.stop();m_player.SetUrl(strName);m_control.SetCurrentPosition(0.01);m_control.play();SetTimer(0,20,NULL);5.运行界面 5.1 版权信息 发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种工具轮换操作灵活性较大也指它的内部编译器集成开发环
25、境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用而生成随着析构函数的调用而消失而窗口则是系统的一个点击“关于”按钮,就可以查看版权信息 5.2 初始界面 加摟式 一J r&II孵16龍 r单柚曲坏 r全麵开 _J _J 5.3 添加文件 点击“打开文件”按钮可以添加自己喜欢的歌曲或视频。发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进
26、快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种工具轮换操作灵活性较大也指它的内部编译器集成开发环境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用而生成随着析构函数的调用而消失而窗口则是系统的一个U 股件 口3川-I.沖 ii 131-H _J亠|5.4 播放文件 打开文件即
27、可播放自己喜欢的音乐或视频。layer 碍止|,醫 遇出 1 关于|03-15 1-S3助 -樂if播试 样僭斥農的-单注忖 广兰曲JB卢 :土 F霑-L _、/*、m 厂薛音 b 发环境利用控件实现媒体播放的功能的多媒体播放器具有打开文件播放暂停全屏音量调节静音快进快退等基本播放功能系统开发平台为操作系统程序设计环境采用关键字多媒体开发工具及相关知识介绍是微软基础类库的简称是微软可以编辑编译调试而不是使用多种工具轮换操作灵活性较大也指它的内部编译器集成开发环境必须有一个编译器内核例如其中一个编译器内核就是除了是一个类库以外还是一个框架在里新建一个的工程开发环境会自动帮你产生许多西但是由是通用框架没有最好的针对性当然也就丧失了一些灵活性和效率一个窗口对象是一个类或派生类的实例是程序直接创建的在程序执行中它随着窗口类构造函数的调用而生成随着析构函数的调用而消失而窗口则是系统的一个