ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:781.42KB ,
资源ID:5885664      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5885664.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(多媒体播放器设计.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

多媒体播放器设计.docx

1、多媒体播放器设计xxxxx学院本科毕业设计(论文)题目: 多媒体播放器设计 学生姓名: 学号: 系(部):数学与计算机科学系 专业:计算机科学与技术 入学时间: 201年 月导师姓名: 职称/学位: 教授 导师所在单位: 多媒体播放器设计摘 要本文主要是开发了一款简单的多媒体播放器。可以播放多种格式的音频、视频文件,该播放器实现了的基本功能包括:音频视频文件的打开、添加到菜单、媒体的播放、音量大小的调节、播放时间的拖动、暂停播放、停止等。使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频、视频文件。在毕业设计中,系统开发平台为Windows XP操作系统,程序设计环境采用Visu

2、al Studio 2010。程序通过调试运行,初步实现了设计目标,本程序是基于MFC集成开发环境,利用directshow sdk实现媒体播放的功能的,除了基本的播放控制外,还具有全屏播放、静音等实用功能。关键词:多媒体;播放器;directshow sdkThe Design and Implementation of Multimedia Player Abstract This article is developed a simple multimedia player. It can play multiple formats of audio,video files, The p

3、layers realize the basic functions include that open the Audio and video files, addto the menu, and media playback, adjust the volume size, play time, drag, pause, stop 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 pla

4、yer. In the Graduation, The System Development Platform is Windows XP, The Programming Environment is Visual Studio2010.Program by commissioning,Initial design goals achieved, the program is based on MFC.Integrated Development Environment. Using the directshow sdk control to achieve the functions of

5、 media player. In addition to the basic playback controls, It also has many other utility functions, such as playing Full Screen,Mute and so on.Keywords: multimedia; player;directshow sdk 多媒体播放器设计第一章 绪 论1.1引言多媒体就是多重媒体的意思,可以理解为直接作用于人感官的文字、图形、图像、动画、声音和视频等各种媒体的统称,即多种信息载体的表现形式和传递方式。我们所提到的多媒体技术,就是利用电脑把文字

6、、图形、影象、动画、声音及视频等媒体信息都数位化,并将其整合在一定的交互式界面上,使电脑具有交互展示不同媒体形态的能力。它极大的改变了人们获取信息的传统方法,符合人们在信息时代的阅读方式。在当今信息社会,以多媒体为特征的信息技术和信息产业的发展及应用对人类社会产生的影响和作用愈来愈明显,愈来愈重要。多媒体能改变信息的包装,实现知识信息数字化,为人们获得知识信息提供极大的方便和无穷的乐趣。友善的人机界面、多种多样的多媒体教学软件、诱人的电子游艺节目、身临其境的多媒体导购系统、五花八门的信息家电和高效方便的网上查询等等,无不渗透着多媒体的作用,它引导人们进入了一个有声有色的世界。同时,多媒体的发展

7、和应用,极大地推动了各行各业的相互渗透和飞速发展,大大改变了人类社会的工作环境和生活方式。可毫不夸张地说,多媒体产业的形成和发展,不仅引起了计算机工业的一次革命,也正在深刻地影响人类社会发生巨大的变革。多媒体技术的发展在很大程度上依靠于多媒体软件开发的水平。目前,不管是支撑多媒体系统的系统软件,还是管理和开发软件,以及多媒体的应用软件都在能力和数量上还难以满足多媒体飞速发展的需要。特别是多媒体应用软件的缺乏一直是制约多媒体产业发展的瓶颈问题,因此己成为多媒体研究和开发的关键问题。如何制作和设计出大量高质量的多媒体应用软件是计算机从业人员所面临的迫切课题,也是广大人民群众所关心的事情。多媒体播放

8、器的设计是一门集计算机技术和数字多媒体技术于一体的综合设计。随着中国计算机技术、宽带网络技术的发展,越来越多的人开始重视多媒体播放器的发展与应用。 1.2系统设计的目的和意义这个课程设计的目的就是制作一个能够播放音频、视频文件的播放器,并使它具备一些简单的操作处理功能,如播放暂停的控制,音量的调节,视频的全屏播放,视频进度的调节等等。将这个小型播放软件做得尽量的小巧、实用。多媒体技术是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。多媒体技术融计算机、声音、文本、图像、动画、视频和通信等多种功能于一体,借助日益普及的高速信息网,可实现计算机的全球联网和信息资源共享,因

9、此被广泛应用在咨询服务、图书、教育、通信、军事、金融、医疗等诸多行业,并正潜移默化地改变着我们生活的面貌。多媒体技术已经成为当今比较热门的研究课题,特别是伴随着多媒体技术的网络化,使得多媒体技术的发展前景无限广阔,因此掌握多媒体及多媒体技术的相关知识,了解多媒体技术当前的发展状况及未来的发展前景,并能熟练地进行多媒体技术的开发,对于当前即将毕业的大学生来讲,是很有发展前途的。基于此,我选择了此课题多媒体播放器的设计与实现,期望通过对此课题的研究与开发,能深入了解多媒体技术,特别是掌握多媒体技术在媒体播放器中的应用。1.3研究背景 本设计采用的Microsoft Visual Studio 20

10、10是微软公司发布的Microsoft Visual Studio软件开发工具的较新版本,此开发软件支持C#、VB.NET、C+、ASP.NET等多种编程语言,功能非常强大。由于本设计要实现音频和视频解码,所以要用到directshow sdk开发包。DirectShow是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM(Component Object Model)的流媒体处理的开发包,与DirectX开发包一起发布。DirectShow使用一种叫Filter Graph的模型来管理整个数据流的处理过程,运用DirectShow,我们可以很方

11、便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。这样使在多媒体数据库管理系统(MDBMS)中多媒体数据的存取变得更加方便。它广泛地支持各种媒体格式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等,为多媒体流的捕捉和回放提供了强有力的支持。ActiveMovie,开发代号 Quartz,这个由 Geraint Davies 为微软公司设计的 DirectShow 的前身,在 Windows 3.0 时代,是作为一种对当时最流行的媒体平台 QuickTime 的回应而开发的。ActiveMovie 最早的出现是被附加在 Windows 95 上面的并且需

12、要系统安装了IE3.0 。它当时的使命是作为 IE 的附件播放在其窗口内的媒体文件,正如当时 QuickTime 为 Netscape 以及 IE 提供的服务那样,它的另一个功能是作为 Windows 视频技术(VFW,Video For Windows)的一个替换,特别地为在 VFW 架构中难于处理的MPEG(移动图象专家组格式文件)文件提供辅助处理。在 1998 年,大致在 DirectX 5 年代的时候,ActiveMovie 被重命名为 DirectShow(反映了微软公司在那时正在努力加强“直接地”在一个通常的取名系统之下与硬件合作的技术)并且被包含为 DirectMedia SDK

13、 的一部份。在 DirectX 的 7 版中,DirectShow 变成了 DirectX SDK 主要组成部分而且如同 DirectInput 等其它 DirectX APIs 一样被给予了它自己的位置。甚至之后, DirectShow 被主要用来接收来自像一个手提摄像机这样的电视输入装置的数据,而且它从文件中显示数据的能力被广泛用在 Windows Media Player 上面。 从 2005 年四月起,DirectShow 被从 DirectX SDK 移除,必须单独下载Extra包才能得以支持,之后DirectShow的文档和示例被转移到Windows SDK,DirectShow也

14、正式成为Windows的一个组件。然而,在编译某些 DirectShow 的示例时,DirectX SDK 仍然是必需的。本次设计出来的多媒体播放器主要支持avi、wmv、flv、rmvb和mkv几种网络上常见的视频格式,对此做简要介绍。Avi的英文全称为Audio Video Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。所谓“音频视频交错”,就是可以将视频和音频交织在一起进行同步播放。这种视频格式的优点是图像质量好,可以跨多个平台使用,但是其缺点是体积过于庞大,而且更加糟糕的是压缩标准不统一,因此经常会

15、遇到高版本Windows媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本Windows媒体播放器又播放不了采用最新编码编辑的AVI格式视频。其实解决的方法也非常简单,我们将在后面的视频转换、视频修复部分中给出解决的方案。Rmvb是一种由RM视频格式升级延伸出的新视频格式,它的先进之处在于RMVB视频格式打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上合理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质量,从而图

16、像质量和文件大小之间就达到了微妙的平衡。FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。WMV(Windows Media Video)是微软推出的一种流媒体格式,它是在“同门”的ASF(AdvancedStreamFormat)格式升级延伸来得。在同等视频质量下,WMV格式的文件可以边下载边播放,因此很适合在网上播放和传输。MKV不是一种压缩格式,而是Matroska的

17、一种媒体文件,Matroska是一种新的多媒体封装格式,也称多媒体容器 (Multimedia Container)。它可将多种不同编码的视频及16条以上不同格式的音频和不同语言的字幕流封装到一个Matroska Media文件当中。MKV最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流。了解了以上的相关知识,使得开发多媒体播放软件有了一个更加清晰的思路。1.4 论文主要研究内容及论文结构安排 本毕业设计是制作一个可播放目前主流媒体格式的多媒体播放器,其基本功能应具有媒体播放、音量调节、播放进度选择、暂停、停止以及抓图等,使之成为一款简易的媒体播放设备,能够完美的播放市面上大多数的音频

18、、视频文件。 论文的结构安排: 第一章 绪论介绍研究背景,目的和意义等;第二章 开发工具介绍,软件的需求分析和模块设计;第三章 多媒体播放器软件设计; 第五章 播放器实现结果演示;最后是结束语以及参考文献和附录的相关内容。第二章 开发平台介绍和软件的初步设计2.1开发平台的介绍Visual Studio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了NET Framework 4.0、Mi

19、crosoft Visual Studio 2010 CTP( Community Technology Preview-CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。在vs2010开发平台上开发用户界面应用程序,我们需要用到mfc类库。MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C+类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windo

20、ws句柄封装类和很多Windows的内建控件和组件的封装类。MFC是WinAPI与C+的结合。API,即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行,比如VB、VC+、Java、Delhpi。编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的消息机制和绘图里,遵守Windows作为一个操作系统的内部实现,这其实也是一种必

21、要。微软如果不提供API,这个世上对Windows编程的工作就不会存在,微软的产品就会迅速从时尚变成垃圾。上面说到MFC是微软对API函数的专用C+封装,这种结合一方面让用户使用微软的专业C+ SDK来进行Windows下应用程序的开发变得容易,因为MFC是对API的封装,微软做了大量的工作,隐藏了好多程序开发人员在Windows下用C+ & MFC编制软件时的大量内节,如应用程序实现消息的处理、设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。2.2软件的需求分析和模块设计2.2.1 软件

22、的需求分析本软件要实现的基本功能是实现音视频文件的播放,要求实现的控制功能是打开、播放、暂停、音量调节、播放进度的控制、全屏播放、抓图、结束、退出等功能,而且要求能够播放rmvb、avi、flv、mkv等常见的视频格式。根据这些要求,需要有相应的软/硬件来支持,硬件方面的要求是计算机要有声卡和显卡,软件方面的要求有:windows xp操作系统、vs2010、directshow sdk开发包、ffdshow编解码软件以及各种视频格式解码器。视频编解码器,是指一个能够对数字视频进行压缩或者解压缩的程序或者设备。通常这种压缩属于有损数据压缩。ffdshow是一套免费的编解码软件,可支持H.264

23、、FLV、WMV、MPEG-1、MPEG-2以及MPEG-4等格式视频档。ffdshow本身并不包含媒体播放器,但各种媒体播放器都可以使用ffdshow进行解码。2.2.2软件的模块设计多媒体播放器:打开模块、播放模块、暂停模块、停止模块、抓图模块、退出模块、拖拽模块、菜单模块。如图1:图1: 多媒体播放器模块设计打开模块:打开目标文件,如音频、视频。退出模块:关闭播放器。播放模块:播放音频、视频。暂停模块:暂时停止正在播放的音/视频文件。停止模块:结束当前视频的播放。抓图模块:对视频进行截图保存。拖拽模块:拖拽音/视频的进度条,控制音量的大小与视频的进度。菜单模块:设置右键快捷菜单,菜单中包

24、括有对视频播放速率的控制以及全屏、静音等功能。第三章 多媒体播放器软件设计3.1开发环境配置在开发之前我们需要在vs2010中搭建directshow sdk开发包。首先我们将下载好的directshow sdk安装到本机上。接着我们打开directshow的sdk安装目录:C:/DX90SDK/Samples/C+/DirectShow/,在里面找到一个叫baseclasses的工程。双击baseclasses.sln打开,按照提示转换工程,打开后对它进行编译。如图2所示,我们会看到编译失败,提示有很多错误。图2 :编译中的错误我们将项目-属性-配置属性-C/C+- 常规-附加包含目录里面的

25、内容(.,././././include)删掉。接着我们将项目-属性-配置属性-C/C+- 语言-强制For循环范围中的合规性设置为否。再接着我们在项目-属性-配置属性-C/C+- 命令行-其它选项中增加/wd4430选项。最后我们再次编译,发现编译成功。编译成功之后,我们在项目-属性-配置属性-vc+ 目录里选择包含目录然后增加C:DXSDKInclude;C:DXSDKSamplesC+CommonInclude;C:DXSDKSamplesC+DirectShowBaseClasses,在库目录中增加C:DXSDKLib。3.2实现GraphEdit模拟实际使用Directshow播放器

26、,首先需要使用GraphEdit来模拟实现,验证插入滤波器的运行特点,体会滤波器的操作过程,为播放器能够正常播放视频做好保障。在使用graphedit进行模拟实现视频播放的过程中,我们发现无法正常建立滤波器链表。进行了相关知识的了解之后,我才知道这是由于没有安装相应的解码器。如图3所示,我安装了相应的解码器。图3:.安装解码器如图4所示,在安装了解码器之后,则能正常的建立滤波器链表了。图4 建立滤波器链表3.3 directshow接口实现函数说明Directshow有关的接口和方法主要封装在CDXGraph类中,这个类也是本设计中两个重要的类之一。以下就是该类中所包含的主要方法以及作用:函数

27、名 函数功能Bool CDXGraph:Create(void)生成滤波器链表管理器Bool CDXGraph:QueryInterfaces(void)查询各类接口Bool CDXGraph:RenderFile(TCHAR * inFile)剖析媒体文件Bool CDXGraph:SetDisplayWindow(HWND inWindow)设置显示窗口Bool CDXGraph:SetNotifyWindow(HWND inWindow)设置窗口消息通知Bool CDXGraph:Run(void)播放视频Bool CDXGraph:Stop(void)停止播放Bool CDXGraph

28、:Pause(void)暂停播放Bool CDXGraph:GetDuration(double * outDuration)获取播放时间长度Bool CDXGraph:GetCurrentPosition(double * outPosition)获取当前播放位置Bool CDXGraph:SetCurrentPosition(double inPosition)设置当前播放位置Bool CDXGraph:SetPlaybackRate(double inRate)设置播放速率Bool CDXGraph:GetStopPosition(double *outPosition)获取视频的结束位

29、置Bool CDXGraph:SetStartStopPosition(double inStart,double inStop)设置视频开始结束位置Bool CDXGraph:Mute( )静音模式Bool CDXGraph:UnMute( )非静音模式Bool CDXGraph:SetFullScreen(BOOL inEnabled)设置全屏Bool CDXGraph:SnapshotBitmap(TCHAR *outFIle)抓图保存表1:CDGraph类中的主要函数及其作用3.4模块实现函数说明实现模块功能的具体函数则均属于CMediaPlayer类,它是本设计中两个重要的类中的另外

30、一个,它是在建立MediaPlayer工程时由MFC建立的一个对话框的类,在该对话框上进行的操作函数即可实现程序所需要的所有功能,其实现函数则是调用CDXGraph类的相关函数,从而完成各项具体功能。各个模块的具体实现函数描述如表2:模块名称 实现函数 打开模块void CMediaPlayerDlg:OnBnClickedButtonOpen() 播放模块void CMediaPlayerDlg:OnBnClickedButtonPlay() 暂停模块void CMediaPlayerDlg:OnBnClickedButtonPause()停止模块void CMediaPlayerDlg:O

31、nBnClickedButtonStop() 抓图模块void CMediaPlayerDlg:OnBnClickedButtonGrasp()退出模块void CMediaPlayerDlg:OnBnClickedButtonExit()拖拽模块void CMediaPlayerDlg:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)菜单模块void CMediaPlayerDlg:OnMenuOpenfile() void CMediaPlayerDlg:OnMenuHalfrate()void CMediaPlayerDlg:OnMenuNormalrate()void CMediaPlayerDlg:OnMenuDoublerate()void CMediaPlayerDlg:OnMenuFullscreen()void CMediaPlayerDlg:OnMenuAlwaysontop()void CMediaPlayerDlg:OnMenuMute()void CMediaPlayerDlg:OnMenuClosefile()void CMediaPlayerDlg:OnM

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2