




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、多媒体技术课程论文题 目:基于MFC的多媒体播放器的设计与实现 专 业: 班 级: 姓 名: 学 号: 指导老师: 摘 要:本程序是基于MFC集成开发环境,利用ActiveMovie控件实现媒体播放的功能的多媒体播放器。具有打开文件、播放、暂停、全屏、音量调节、静音、快进、快退等基本播放功能。系统开发平台为Windows 7操作系统,程序设计环境采用Visual C+ 6.0。关键字:MFC,ActiveMovie,多媒体1开发工具及相关知识介绍MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c+类库,主要封装了大部分的windows A
2、PI函数,vc+是微软公司开发的c/c+的集成开发环境,所谓集成开发环境,就是说利用它可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。vc也指它的内部编译器,集成开发环境必须有一个编译器内核,例如DevC+其中一个编译器内核就是gcc。 MFC除了是一个类库以外,还是一个框架,在vc+里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了mfc内核,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率。一个MFC窗口对象是一个C+ CWnd类
3、(或派生类)的实例,是程序直接创建的。在程序执行中它随着窗口类构造函数的调用而生成,随着析构函数的调用而消失。而Windows窗口则是 Windows系统的一个内部数据结构的实例,由一个“窗口句柄”标识,Windows系统创建它并给它分配系统资源。Windows窗口在MFC窗口对 象创建之后,由CWnd类的Create成员函数创建,“窗口句柄”保存在窗口对象的m_hWnd成员变量中。Windows窗口可以被一个程序销毁,也 可以被用户的动作销毁。ActiveX控件是基于COM的可重用组件,主要用于插入ActiveX控件包容器或Web页,ActiveX在外观上和使用上和普通控件一样,还提供属性页
4、以支持在包容器的设计阶段对ActiveX控件的属性进行可视化设计。现在多媒体技术正向二个方而发展:一是网络化发展趋势,与宽带网络通信等技术相互结合,使多媒体技术进入科研设计、企业管理、办公自动化、远程教育、远程医疗、检索咨询,文化娱乐、自动测控等领域;二是多媒体终端的部件化、智能化和嵌入化,提高计算机系统本身的多媒体性能,开发智能化家电。多媒体有三个关键特性:多样性、交互性和集成性。2系统的功能说明 2.1打开文件按钮 单击打开按钮,选定需要播放的文件的路径并打开,则选定的文件将被添加到播放列表中。 2.2播放/暂停文件按钮单击暂停按钮,则播放暂停。2.3播放进度滑块用户可以通过滑动播放进度滑
5、块进行对播放进程的控制,实现音频视频文件播放的快进和快退。 2.4随机/顺序/单曲/全曲循环选项当用户勾选随机/顺序/单曲/全曲循环时,播放模式会切换到会转变到相应的模式下。 2.5上一曲/下一曲按钮当用户单击该按钮时,播放的文件相应变化。2.6音量调节滑块用户可以通过对音量调节滑块进行调节从而控制音量的大小。 2.7静音选项 选择该选项时将会静音。 2.8停止播放按钮单击该按钮,停止播放. 2.9退出程序按钮单击退出程序按钮从播放器中退出。3.所设计系统实现的各模块介绍3.1流程图设计打开添加文件到列表关闭暂停顺序、随机、列表播放、播放文件停止播放 3.2各模块介绍多媒体播放器播放调节播放模
6、式播放列表播放功能音量调节进度调节全曲循环单曲循环顺序播放随机播放退出全屏停止播放暂停打开文件 本多媒体播放系统从界面上看分为四个部分:播放界面、播放控制、播放列表和播放模式。(1)播放界面:可以看到背景图,还可以方便用户调整播放进度、音量大小,也能对音频和视频进行播放和暂停的控制。(2)播放模式:有顺序播放、循环播放、随机选择三种模式。用户通过对这三种模式的选择可以控制音频视频的播放顺序。(3)播放列表:播放列表记录了被用户添加的需要播放的文件,方便用户在添加文件之后可以迅速找到需要播放的文件。(4)播放控制:主要包括媒体文件的打开、播放进度的调整、暂停、停止、全屏和程序的退出。4.各模块源
7、程序及主要部分 4.1.打开文件void CMediaPlayerDlg:OnOpen() m_listCtrl.SetFocus();CString str;TCHAR szFilter = _T(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
8、File(*.mpeg)|*.mpeg|All File(*.*)|*.*|); CFileDialog fileDlg(TRUE,NULL, NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, this);CString strFilePath;if (IDOK = fileDlg.DoModal()strFilePath = fileDlg.GetPathName();strFilePath.MakeUpper();m_player.SetUrl(strFilePath);m_media=static_cast(m_player.n
9、ewMedia(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,_T(strFilePath);m_listCtrl.SetItemText(count+,4,_
10、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.GetItemText(0,3);m_listCtrl.SetItemState(0,LVIS_SELECT
11、ED,LVIS_SELECTED); 4.2播放 void CMediaPlayerDlg:OnPlay() if(m_list.GetCount()-4000)m_ActiveMovie.Pause();m_ActiveMovie.SetVolume(-4000);m_ActiveMovie.Run();elsem_ActiveMovie.Pause();m_ActiveMovie.SetVolume(temp+4000);m_ActiveMovie.Run(); 4.17快进退模块 /快进void CMediaPlayerDlg:OnForward() double t = m_contr
12、ol.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;CString strName;UINT flag1 = LVIS_SELECTED
13、|LVIS_FOCUSED;pos = m_listCtrl.GetFirstSelectedItemPosition();IndexInFieldList = m_listCtrl.GetNextSelectedItem(pos); if(IndexInFieldList = -1)AfxMessageBox(列表内没有被选中项!);return;if(IndexInFieldList = 0)AfxMessageBox(已经到了列表头部!);m_listCtrl.SetItemState(IndexInFieldList, flag1, flag1);return;m_listCtrl.S
14、etItemState(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.play();SetTimer(0,20,NULL);/下一曲
15、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(列表内没有被选中项!);return;if(IndexInFieldLi
16、st = 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(IndexInFieldList+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版权信息点击“关于”按钮,就可以查看版权信息5.2初始界
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鼻科学解剖学合同
- 车辆抵押贷款服务合同模板下载
- 智能制造企业代理记账及智能制造财务合同
- 老人发热护理课件
- 消防安全月检查记录表
- 路灯安全生产管理制度
- 安全管理资格证书查询
- 美术课件作品介绍
- 美术人物介绍课件
- 消防安全巡视检查表
- 2025至2030中国双酚TMC行业发展趋势分析与未来投资战略咨询研究报告
- 加油站油品品质管理制度
- 播音与主持专业教学标准(中等职业教育)2025修订
- 2025年中国大米加工行业发展潜力分析及投资方向研究报告
- 2025年北京高考物理试卷真题(含答案解析)
- GB/T 45823-2025光伏单晶硅生长用石英坩埚高纯内层砂
- 2025至2030中国建设工程质量检测产业市场深度调研及发展趋势与投资报告
- 【课件】化学保“胃”战-酸碱盐复习与提高-2024-2025学年九年级化学人教版(2024)下册
- 会计电算化基础知识2025年考试试卷及答案
- 会计转正考试试题及答案
- 生物安全程序文件(2025版)
评论
0/150
提交评论