基于MFC的视频播放器_第1页
基于MFC的视频播放器_第2页
基于MFC的视频播放器_第3页
基于MFC的视频播放器_第4页
基于MFC的视频播放器_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、河南农业大学本科生毕业论文题 目 基于MFC的视频播放器 学 院 理学院 专业班级 11级电子信息科学与技术 (信息安全专门化)3班 学生姓名 蔡秀梅 指导教师 谷小青 撰写日期:2015年05月28日河南农业大学理学院本科毕业论文基于MFC的视频播放器蔡秀梅摘要本文主要介绍了开发一款简单的视频播放器。可以播放多种格式的音频、视频文件,它实现的基本功能包括:音频视频文件的打开、添加到菜单、媒体的播放、暂停播放、停止以及歌曲信息的查询、添加与删除、音量大小的调节、播放时间的拖动等。使之成为一种简易的视频播放设备,能够完美的播放市场上大部分的音频、视频文件。在本毕业设计中,系统开发平台为Windo

2、ws7旗舰版OS(操作系统),程序运行环境使用Visual C+ 6.0。在程序设计中,利用了微软公司开发的ActiveX控件可视动画控件Windows Media Player,程序通过调试运行,初步实现了设计目标,本程序是基于MFC集成开发环境,利用Windows Media Player控件实现视频播放的功能的,除了基本的播放控制模块外,还具有多文件的自动顺序循环播放、单曲播放、随机播放等多种实用功能,能够很好地满足当代人的音视觉需求。关键词: 视频播放器;ActiveX控件;微软基础类Based on the MFC video playerCAI Xiu-meiAbstra

3、ctThis article is developed a simple video player. It can play video formats of audio, video files. It includes the basic functions include that open the Audio and video files, add to the menu, and media playback, pause, stop and song information such as query, add and delete, adjust the volume size

4、, play time drag and so on. Making it a simple media player device, most audio or video files in the market can be played perfectly by this media player. In this Graduation, The System Development Platform is Windows 7Ultimate. The Programming Environment is Visual C+ 6.0. In the program design, usi

5、ng the ActiveX control Developed by Microsoft. Program by commissioning, initial design goals achieved, the program is based on MFC Integrated Development Environment. Using Windows Media Player control can realize the function of the media player. In addition to the basic playback controls, it also

6、 has many other utility functions, such as automatic multi-file loop sequence, single play,random play and so on. Itcan meet the demand of contemporary sound sense of vision very well.Key words : video player ; Active control ; Microsoft Foundation Classes目录1 绪论11.1 课题背景11.2论文主要研究内容31.3论文结构安排42 相关技术

7、介绍52.1 MFC52.2 Visual C+6.052.3 ActiveX控件53视频播放器的总体设计73.1 数据模型73.2 软件的模块设计73.3播放器数据流图84基于MFC的视频播放器的实现104.1多媒体播放器的界面设计104.2 视频播放器的播放控制功能的设计与实现104.2.1 播放列表104.2.2 添加文件114.2.3 保存列表124.2.4 播放文件134.2.5 删除当前和清空列表144.2.6 播放方式(随机播放、顺序播放、单曲播放)144.2.7 退出程序155 结论17参考文献18附录19致谢291 绪论1.1 课题背景随着计算机技术的飞速发展,以计算机技术为

8、基础的多媒体技术在生活中扮演重要的角色。多媒体的发展和应用,极大地推动了诸多工业的相互渗透和飞速发展,逐步改变了整个人类社会的工作和生活方式。在现代科学技术飞速发展的今天,信息的传输、信息的处理和信息的共享已成为现代社会进步的关键1。多媒体技术是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。许多国家对多媒体技术的研究应用以及多媒体产业的形成和发展非常重视,投入了大量的人力、物力,特别是世界上大多发达和发展中国家,试图拥有先进的多媒体信息技术和庞大的多媒体产业市场尽快推动本民族工业、经济和科学技术的飞速发展。如近年来信息高速公路、计算机数字通信和大众媒体传播等领域的迅

9、猛发展和统一对于促进了一个国家,乃至整个人类社会的发展已起到了里程碑的作用2。多媒体为什么好似一夜之间流行全球,最重要的原因有二:一是多媒体是人类可以直接接受的最为全面和最为丰富的信息资源,对于推动当今高度发达和文明社会的飞速发展起着重要的主导地位,因而社会需求多媒体。二是随着计算机和影视工业以及通讯、数据处理等技术的成熟,为多媒体产业的发展提供了坚实的基础,并伴随着现代计算机、影视工业和娱乐行业的相互渗透和走向大同,多媒体的发展也就成为了现代科技发展的必然产物3。多媒体技术融智能、声音、图像、数据、视频、和通信等多种功能于一体,借助日益普及的高速信息网,可实现计算机的全球联网和信息资源共享,

10、因此被广泛应用于工业、农业、服务、教育、通信、军事、金融等各行各业。在现代科学技术告诉发展的今天,信息的传输、信息的处理和信息的共享已成为现代社会进步的关键。多媒体技术的网络化发展趋势。技术的创新和发展将使诸如服务器、路由器、转换器等网络设备的性能越来越高,包括用户端CPU、内存、图形卡等在内的硬件能力空前扩展,人们将受益于无限的计算和充裕的带宽,它使网络应用者改变以往被动地接受处理信息的状态,并以更加积极主动的姿态去参与眼前的网络虚拟世界4。了解了它的背景,那么研究它的意义何在呢?多媒体播放器,也叫RMVB播放器,一种可以在电视上播放网络视频文件的设备。如:暴风影音是Windows Medi

11、a Player的补充和完善,当前暴风影音定位为一种软件的整合和服务而存在,并非一个特定的软件。它提供和升级了系统对常见绝大多数影音文件流行媒体的支持。多媒体技术是当今信息技术领域发展最快的、最活跃的技术,其发展的方向也是极其多样化,所以在人们的日常生活中,几乎随处可见其身影。本毕业设计就是通过在VC+6.0开发平台上开发一个简单的音/视频播放器的过程,了解多媒体与多媒体技术及其在播放器中的应用,掌握多媒体技术开发相关技术及多媒体文件的访问与传播,同时利用软件工程的相关理论知识,了解软件开发的方法与步骤。多媒体技术已经成为当今比较热门的研究课题,特别是伴随着多媒体技术的网络化,使得多媒体技术的

12、发展前景无限广阔。由于多媒体技术使计算机具有综合处理声音、文字、图像和视频信息的能力,它以形象丰富的声、文、图等信息和方便的交互性,极大地改善了人机界面,改变了使用计算机的方式,从而为计算机进入人类生活和生产的各个领域打开了大门。同时,多媒体计算机技术是信息高速公路架构的重要组成部分,是我国国民经济信息化的核心技术;多媒体计算机技术还是解决高清晰度电视(HDTV)、常规电视数字化、交互式电视(ITV-Interactive TV)、点播电视(VOD-Video On Demand)等问题的最佳方案;也是改造传统产业,特别是出版、印刷、广告、娱乐等产业的先进技术。如我国的印刷产业,1993年产值

13、5000亿元,可以利用多媒体技术实现电子化,其中包括电子排版系统,电子出版物等将会有极大市场。因此,发展多媒体计算机技术必将对我国国民经济、科学技术和文化教育方面产生深远的影响5。另外由于多媒体系统需要将不同的媒体数据表示成统一的结构码流,然后对其进行变换、重组和分析处理,以进行进一步的存储、传送、输出和交互控制。因此,多媒体的传统关键技术主要集中在以下四类中:数据压缩技术、大规模集成电路(VLSI)制造技术、大容量的光盘存储器(CD-ROM)、实时多任务操作系统。因为这些技术取得了突破性的进展,多媒体技术才得以迅速的发展,而成为像今天这样具有强大的处理声音、文字、图像等媒体信息的能力的高科技

14、技术6。同时随着多媒体技术的发展使多媒体计算机将形成更完善的计算机支撑的协同工作环境,消除了空间距离的障碍,也消除了时间距离的障碍,为人类提供更完善的信息服务。交互的、动态的多媒体技术能够在网络环境创建出更加生动逼真的二维与三维场景,人们还可以借助摄像等设备,把办公室和娱乐工具集合在终端多媒体计算器上,可在世界任何角落与千里之外的同行在实时视频会议上进行市场讨论、产品设计和欣赏高质量的图像画面。新一代用户界面(UI)与智能人工(Intelligent Agent)等网络化、人性化、个性化的多媒体软件的应用还可使不同国籍、不同文化背景和不同文化程度的人们通过“人机对话”,自由地沟通。世界正迈向数

15、字化、网络化、全球一体化的信息时代。信息技术将渗透到人类社会的方方面面,其中网络技术和多媒体技术是促进信息社会全面发展的关键技术。在以Internet为代表的通信网上提供的多种多媒体业务会给信息社会带来深远影响,同时将多台异地互联的多媒体计算机协同工作,更好的实现信息共享,提高工作效率,这种协同工作环境代表了多媒体应用的发展趋势。就目前而言,多媒体技术已在商业教育培训、电视会议、声像演示等方面得到了充分应用。信息点播有桌上多媒体通信系统和交互电视ITV。计算机协同工作(CSCW)是指在计算机支持的环境中,一个群体协同工作以完成一项共同的任务。计算机的交互性,通信的分布性和多媒体的现实性相结合,

16、将构成继电报电话、传真之后的第四代通信手段。多媒体技术给出版业带来了巨大的影响,其中近年来出现的电子图书和电子报刊就是应用多媒体技术的产物。利用多媒体技术可为各类咨询提供服务,如旅游、邮电、交通、商业、金融、宾馆等。其实多媒体最看得见的应用,就是数字化的音乐和影像进入了家庭。由于数字化的多媒体具有传输储存方便、保真度非常高,在个人电脑用户中广泛受到青睐,而专门的数字视听产品,也大量进入了家庭,如CD、VCD、DVD等设备。多媒体技术还将改变未来的家庭生活,多媒体技术在家庭中的应用将使人们在家中上班成为现实。1.2论文主要研究内容本毕业设计是制作一个可播放目前主流媒体格式的多媒体播放器,其基本功

17、能应具有媒体播放、音量调节、播放进度选择、暂停、停止以及歌曲信息的查询、添加和删除等,使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频、视频文件。多媒体利用计算机系统的人机交互界面和手段更加友好和方便,非专业人员可以方便地使用和操作计算机。多媒体技术使音像技术、计算机技术和通信技术三大信息处理技术紧密地结合起来,为信息处理技术发展奠定了新的基石。多媒体技术发展已经有多年的历史了,到目前为止声音、视频、图像压缩方面的基础技术已逐步成熟,并形成了产品进入市场,视频播放器它的出现使我们的计算机世界丰富多彩起来,也使得计算机的世界充满了人性的气息。多媒体的未来是激动人心的,我们生活中数

18、字信息的数量在今后几十年中将急剧增加,质量上也将大大的改善。多媒体正在以迅速的、意想不到的方式进入到人们生活的多个方面。多媒体技术在未来的发展趋势中将会具有更好、更自然的交互性,形成更大的信息存取服务体系,为未来的人类生活创造出一个在功能、空间、时间以及人与人之间交互更加完美的崭新世界。1.3论文结构安排本论文的结构安排如下:第一章 绪论:主要是介绍基于MFC多媒体播放器的研究背景、目的和意义等;第二章 相关技术介绍:主要是开发软件及环境的介绍、软件的需求分析和软件的模块设计等;第三章 视频播放器的总体设计:主要介绍数据模型及模块设计和数据流图;第四章 基于MFC的多媒体播放器系统的实现:主要

19、是各个模块的设计与实现。第五章 结论:主要对论文进行总结和今后研究设想。2 相关技术介绍2.1 MFCMFC是用来编写Windows应用程序的C+类集,其中封装了大部分Windows API函数和Windows控件,使用MFC类库和Visual C+提供的高度可视的应用程序开发工具,可使应用程序开发变得简单,提高代码的可靠性和可重用性。随着多媒体性能的极大提升,程序中经常要播放一段视频或者一段音频,如果能够简单地插入音频和视频,将极大缩短程序的开发时间。本文基于MFC在Visual C+6.0环境下利用Windows Media Player控件实现了音频视频文件的播放7。Windows作为一

20、个提供功能强大的应用程序接口编程的操作系统,的确方便了许多程序员,但是传统的win32开发(直接使用Windows的接口函数API)对于程序员来说仍然是非常的困难,因为API函数实在太多了,并且名称很乱,例如构建一个窗口动辄就是上百行的代码。然而MFC是面向对象程序设计与Application framework的完美结合,将传统的API进行了分类封装,并且创建了程序的一般框架,这大大简化了我们的工作8。2.2 Visual C+6.0本设计采用的Visual C+6.0是Windows操作系统上常见的C+开发工具,是Microsoft公司推出的目前使用极为广泛的基于Windows平台的C+的

21、可视化的开发环境。Visual C+ 6.0编译器(Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境)负责将C+源代码编译成汇编文件,转变为中间文件,然后使用连接器将相关的中间文件连接起来,生成可执行的二进制文件9。2.3 ActiveX控件ActiveX是Microsoft提出的COM组件在网络环境中进行交互操作的一种标准,同时也是基于COM的开放技术集合,代表了应用程序与Internet的一种集成策略。ActiveX控件是基于C

22、OM的可重用组件,主要用于插入ActiveX控件包容器或Web页,ActiveX在外观上和使用上和普通控件一样,还提供属性页以支持在包容器的设计阶段对ActiveX控件的属性进行可视化设计10。作为针对Internet应用而开发的技术,ActiveX广泛应用于Web服务器和客户端的各个方面,也可以用于普通桌面应用程序。在使用VC+6.0创建ActiveX控件包容器时,可以使用MFC。设计一个 ActiveX控件如同设计一个Visual Basic 窗体那样容易,用户可以使用所熟悉的Visual Basic 图形命令来画控件,或者使用已有的控件来创建一个控件组。同时ActiveX控件可以在运行中

23、调试,可以直接从调试窗体的代码跟踪到ActiveX控件工程的代码中11。3视频播放器的总体设计3.1 数据模型通过对多媒体播放器的功能和数据流程分析,设计的数据项和数据结构如下:(1) 多媒体静态数据:主要是包括界面的设置、控件等。(2) 多媒体动态数据:解码信息流、声音流、图像流等。(3) 歌曲的基本信息:因为本程序中只涉及到歌曲的基本信息,为了简单说明,在数据库中只包含了与歌曲有直接关系的数据项。3.2 软件的模块设计该播放器分为七个模块如图3.1所示,根据ActiveX控件可实现它们各自相应的功能。多媒体播放器播放模块添加模块保存模块清空模块循环模块删除模块退出模块图3.1 播放器的模块

24、划分(1) 播放模块:播放音频、视频文件。(2) 添加模块:添加歌曲信息。(3) 保存模块:保存已经添加的歌曲信息。 (4) 删除模块:删除指定的歌曲信息。(5) 清空模块:删除播放列表中的所有歌曲信息。(6) 循环模块:实现播放列表中的全部文件的顺序播放、随机播放和单曲循环。(7) 退出模块:结束当前音/视频文件的播放,但不退出播放器。3.3播放器数据流图播放器采用分层设计,位于最上层的是用户界面,所有播放控制操作,用户只需在界面上点击相应得菜单或图标按钮即可轻松实现各种播放操作。图3.2中展示了用户每次操作在播放器内部引发的一系列动作12。图3.2 媒体播放器数据流图各个模块的详细介绍如下

25、:(1)音频文件:专指存放音频数据的文件。(2)视频文件:把视频和音频放在一个文件中,以方便同时回放。(3)获取文件信息:同时获取并提取音频和视频文件中的信息。(4)解码器:是一种将模拟信号转换为数字信号格式,并进一步压缩和传输的设备。(5)解码:用解码器把数码还原成它所代表的内容。(6)解码信息:解码器解码出声音流、字幕信息、图像流等解码信息。(7)声音流:进行流式传输的声音的信息。(8)声音控制合成:声音流通过合成器来产生并修改正弦波形并叠加,然后通过声音产生器和扬声器发出特定的声音。(9)声卡输出:通过声卡把来自控制合成的原始声音信号加以转换,输出到耳机、扬声器等声响设备。(10)字幕信

26、息:在屏幕下方出现的解说文字,如唱词、歌手、任务列表等。(11)图像流:进行流式传输的图像的信息。(12)图像编码:也称图像压缩,指在满足一定质量(信噪比的要求或主观评价得分)的条件下,以较少比特数表示图像流中所包含信息的技术。(13)显示控制:针对现场图像等信号进行采集、显示、控制、远传、通讯、打印等处理,构成数字采集系统及控制系统。(14)显示叠加:字幕信息和图像信息叠加起来在屏幕上显示出来的模块。(15)显卡输出:叠加后的信息通过显卡输出到显示器上。4基于MFC的视频播放器的实现4.1多媒体播放器的界面设计本播放器的界面是使用控件和位图相结合制作出来的。首先,打开Visual C+6.0

27、新建一个MFC工程,选择单文档,生成一个窗口。然后再打开ResouceView,点开Dialog,插入Dialog,在对话框空白处点击右键,选择“插入ActiveX控件”,选择Windows Media Player。然后利用相应控件,绘制各个按钮。最后给对应的按钮添加消息响应函数,实现各个功能13。播放器的主界面设计如下图4.1所示:图4.1 播放器主界面4.2 视频播放器的播放控制功能的设计与实现4.2.1 播放列表播放列表的设置是为了添加相应的音乐文件,方便音乐文件的浏览、选定播放。如图4.1所示:相应函数如下所示:void CMFCDlg:Onlist() /播放列表响应函数flag=

28、!flag;if(!flag)SetWindowPos(NULL,0,0,375,340,SWP_NOMOVE);/原始窗口的大小设置elseSetWindowPos(NULL,0,0,535,340,SWP_NOMOVE);/打开列表后窗口的大小设置4.2.2 添加文件添加音乐文件到播放列表中,首先选定所需要的音乐,然后把选定的音乐添加到播放器的播放列表里面,添加后播放器界面如图4.2所示14:图4.2 添加音乐文件相应的响应函数如下所示:void CMFCDlg:Onadd() Char szFileFilter="媒体文件(*.avi,*.mp3,*.wma,*.dat,*.w

29、av,*.mov,*.mmm,*.mpeg,*.mid,*,rmi,*.*)|*.avi;*.mp3;*.wma;*.dat;*.wav;*.mov;*.mmm;*.mpeg;*.mid;*.rmi;*.*|"CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR,szFileFilter);POSITION pos=dlg.GetStartPosition();if(dlg.DoModal()=IDOK) while(pos!=NULL)m_pathname=dlg.G

30、etNextPathName(pos);m_list.AddString(m_pathname)4.2.3 保存列表保存列表中的音乐文件,音乐文件被保存在新生成的记事本中。如下图4.3所示:图4.3 保存列表相应的响应函数如下所示:void CMFCDlg:Onsave() CStdioFile file;file.Open(".list.txt",CFile:modeCreate|CFile:modeReadWrite|CFile:typeText);for(int i=0;i<m_list.GetCount();i+)CString strtemp; m_list

31、.GetText(i,strtemp);strtemp+="n"/需要换行file.WriteString(strtemp);file.Close();4.2.4 播放文件选择音乐,点击播放文件按钮后,播放界面如下图4.4所示:图4.4 播放文件相应的响应函数如下所示:void CMFCDlg:Onplay() CString str; if(m_list.GetCount()<=0)MessageBox("请先打开最少一个媒体文件!","Warning",MB_OK); else if(m_list.GetCurSel()&l

32、t;0)m_list.SetCurSel(0); int index=m_list.GetCurSel(); m_list.GetText(index,str);/获取当前选中文件信息m_player.SetUrl(str);/播放当前选中文件SetTimer(1,1000,NULL);4.2.5 删除当前和清空列表删除当前删除选择的音乐文件,将其从列表中删除。相应的响应函数如下所示:void CMFCDlg:Onlistchoosedelete() m_list.DeleteString(m_list.GetCurSel();/删除光标所指的行Onsave();/删除本行后自动保存列表清空列

33、表:清空列表中的所有音乐文件。相应的响应函数如下所示:void CMFCDlg:Onlistdeleteall() CStdioFile file; m_list.ResetContent(); file.Open(".list.txt",CFile:modeCreate); 4.2.6 播放方式(随机播放、顺序播放、单曲播放)构建一个计时器,实现播放器的顺序播放、随机播放和单曲循环,如下图4.5所示:图4.5 播放方式相应的响应函数如下所示:void CMFCDlg:OnTimer(UINT nIDEvent)int index=m_player.GetPlayState

34、();if(index=1)if(CButton *)GetDlgItem(IDC_RADIO1)->GetCheck()CString str;int index=m_list.GetCurSel()+1;if(index>=m_list.GetCount()index=0;/如果播放完最后一曲,则自动播放第一首音乐m_list.GetText(index,str);m_player.SetUrl(str);m_list.SetCurSel(index);/自动设置光标if(CButton *)GetDlgItem(IDC_RADIO2)->GetCheck()/随机播放s

35、rand(time(0);m_list.SetCurSel(rand()%m_list.GetCount();m_list.GetText(m_list.GetCurSel(),m_pathname);m_player.SetUrl(m_pathname);if(CButton *)GetDlgItem(IDC_RADIO3)->GetCheck()/单曲播放m_list.GetText(m_list.GetCurSel(),m_pathname);m_player.SetUrl(m_pathname);CDialog:OnTimer(nIDEvent);4.2.7 退出程序关闭播放器,

36、同时退出程序。实现的界面如下图4.6所示:图4.6 退出程序相应的响应函数如下所示:void CMFCDlg:Onexit() MessageBox("感谢您的使用!","再见");CDialog:OnCancel();KillTimer(1);/退出时删除计时器5 结论本设计使用了VC+6.0这个微软强大的可视化应用程序开发工具,在VC+6.0环境下,利用MFC库和ActiveX控件15,可以较为方便的制作界面美观并且可以实现多种媒体格式的播放器程序,带给我们美好的视听享受。我们生活中数字信息的数量在今后几十年中将急剧增加,质量上也将大大的改善。多媒体

37、正在以迅速的、意想不到的方式进入到人们生活的多个方面。多媒体技术在未来的发展趋势中将会具有更好、更自然的交互性,形成更大的信息存取服务体系,为未来的人类生活创造出一个在功能、空间、时间以及人与人之间交互更加完美的崭新世界。该设计的多媒体播放器功能相当强大,并且使用简单,能够进行日常的媒体播放任务,体积较小,占用内存较低。同时能够完美的播放大部分的音频、视频文件。程序通过调试运行,初步实现了设计的目标,并且经过完善后,使它成为了一款简易的媒体播放软件。由于时间和硬件条件的关系,程序功能的实现还不够完善,界面也不够美观等。这些问题还需要我们不断的改进和补充。具体存在的问题及不足主要有以下五点:(1

38、) 播放器的界面还不够美观。由于时间有限,没能给每个按钮都做一张位图图片,如果时间允许我会尽量完善它,使其兼具实用与美观,给人更美的视觉享受。(2) 播放器的稳定性不高。有时在播放非主流格式的媒体文件时,会发生报错现象,这是由于程序兼容性不高的缘故,我会尽力改善程序的这些问题。(3) 播放视频时的窗口大小问题。当播放画面分辨率较高的视频文件时,会造成画面溢出对话框,影响观看及画面美观,这个问题在今后一定要解决,让用户体验视听的终极享受。(4) 播放器没有注册和登录界面。由于时间的问题没有设置注册和登陆界面,给统计用户使用情况带来了一定的不便,如果时间允许我想尽力完善它。(5) 视频器没有版权设

39、计界面。如果时间允许我想给播放器设计一个自己的版权。面对这些不足我会查阅相关资料改正并完善,经过我的努力,一定会更受广大用户的青睐。参考文献1 龚进明,戴红芳多媒体资源播放器的设计与开发J常熟高专学报,2003:32 王永乐,徐书欣媒体播放器的制作技术J北京工业大学学报,2006,(10) :2-4 3 刘雅琴,夏玉杰 基于MFC的多媒体播放器的实现J 信息技术,2009,(03) :2-34 孙维伟,叶明 嵌入式多媒体播放器的设计与实现J 电子技术, 2006,(12) :6-95 龚月琴多功能媒体播放器的设计与开发J 福建电脑,2004,(07) :5-106 周长发Visual C+NE

40、T多媒体编程M北京:电子工业出版社,2002:15-307 谭浩强C程序设计教程Z北京:清华大学出版社,2007:9-188 黄维通Visual C+面向对象可视化程序设计M北京:清华大学出版社,2003:259 姚领田 精通MFC程序设计M北京:人民邮电出版社,2006,(07):50-5510 David JKruglinski,Scot Wingo,George ShepherdProgramming Visual C+ 6.0 技术内幕M北京:北京希望电子出版社,2001:100-12011 李博轩Visual C+6.0多媒体开发指南M北京:清华大学出版社,2000:10-1212

41、戴建耘Access2003数据库教程M北京:电子工业出版社,2007:13-1513 孙鑫,余安萍VC+深入详解M北京:电子工业出版社,2006:8-914 侯俊杰深入浅出MFC M武汉:华中科技大学出版社,2001:33-4515 唐俊明VisualC+6.0编程实例与技巧M北京:高等教育出版,2002:18-20附录/ MFC视频播放器毕业设计Dlg.cpp : implementation file#include "stdafx.h"#include "MFC视频播放器毕业设计.h"#include "MFC视频播放器毕业设计Dlg.h

42、"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifint flag;CString m_pathname;/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated

43、virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoi

44、d CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMFCDlg message handlersBOOL CMFCDlg:OnInitDialog()CDialog:OnInitDialog();/ A

45、dd "About." menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);

46、if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_

47、hIcon, FALSE);/ Set small iconSetWindowPos(NULL,0,0,375,340,SWP_NOMOVE);/无相对移动m_list.SetHorizontalExtent(1000);CStdioFile *fsp=new CStdioFile(".list.txt",CFile:modeRead);CString str;while(fsp->ReadString(str)m_list.AddString(str);fsp->Close();delete fsp;m_list.SetCurSel(0);m_list.Get

48、Text(m_list.GetCurSel(),m_pathname); (CButton *)GetDlgItem(IDC_RADIO1)->SetCheck(true);/顺序播放return TRUE; void CMFCDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);void CMFCDlg:OnPaint() if (Is

49、Iconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - c

50、yIcon + 1) / 2;dc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();HCURSOR CMFCDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CMFCDlg:Onabout() CAboutDlg dlg;dlg.DoModal();void CMFCDlg:Onexit() MessageBox("感谢您的使用!","再见");CDialog:OnCancel();KillTimer(1);/退出时删除计时器void CMFCDlg:Onli

51、st() flag=!flag;if(!flag)SetWindowPos(NULL,0,0,448,408,SWP_NOMOVE);elseSetWindowPos(NULL,0,0,610,408,SWP_NOMOVE);void CMFCDlg:Onadd() char szFileFilter="媒体文件(*.avi,*.mp3,*.wma,*.dat,*.wav,*.mov,*.mmm,*.mpeg,*.mid,*,rmi,*.*)|*.avi;*.mp3;*.wma;*.dat;*.wav;*.mov;*.mmm;*.mpeg;*.mid;*.rmi;*.*|"

52、CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR,szFileFilter);POSITION pos=dlg.GetStartPosition();if(dlg.DoModal()=IDOK) while(pos!=NULL)m_pathname=dlg.GetNextPathName(pos); m_list.AddString(m_pathname);void CMFCDlg:OnDblclkList2() CString str;int index=m_list.Ge

53、tCurSel();m_list.GetText(index,str);m_player.SetUrl(str);m_pathname=str;SetTimer(1,1000,NULL);/在点击播放时就开始计时void CMFCDlg:OnSelchangeList2() void CMFCDlg:Onplay() CString str; if(m_list.GetCount()<=0)MessageBox("请先打开最少一个媒体文件!","Warning",MB_OK); else if(m_list.GetCurSel()<0)m_l

54、ist.SetCurSel(0); int index=m_list.GetCurSel(); m_list.GetText(index,str);/获取当前选中文件信息m_player.SetUrl(str);/播放当前选中文件SetTimer(1,1000,NULL); void CMFCDlg:Onfullscreen() int index=m_player.GetPlayState(); if(index=1)|(index=3) m_player.SetFullScreen(1); void CMFCDlg:Onsave() CStdioFile file;file.Open(".list.txt",CFile:modeCreate|CFile:modeReadWrite|CFile:typeText);for(int i=0;i<m_list.GetCount();

温馨提示

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

评论

0/150

提交评论