多媒体播放器设计.docx

上传人:小飞机 文档编号:5090282 上传时间:2023-06-03 格式:DOCX 页数:25 大小:291.40KB
返回 下载 相关 举报
多媒体播放器设计.docx_第1页
第1页 / 共25页
多媒体播放器设计.docx_第2页
第2页 / 共25页
多媒体播放器设计.docx_第3页
第3页 / 共25页
多媒体播放器设计.docx_第4页
第4页 / 共25页
多媒体播放器设计.docx_第5页
第5页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《多媒体播放器设计.docx》由会员分享,可在线阅读,更多相关《多媒体播放器设计.docx(25页珍藏版)》请在三一办公上搜索。

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

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

3、 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 player. In the Gradua

4、tion, 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 media player. In

5、 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第一章绪 论11.1引言11.2系统设计的目的和意义113研究背景21.4 论文主要研究容及论文结构安排4第二章开发平台介绍和软件的初步设计52.1开发平台的介绍52.2软件的需求分析和模块设计52.2.1软件的需求分析52.2.2软件的模块设计6第三章多媒

6、体播放器软件设计73.1开发环境配置73.2 实现 GRAPHEDIT 模拟83.3 DIRECTSHOW接口实现函数说明83.4模块实现函数说明93.5主要变量声明103.6设计多媒体播放器的界面113.7播放器模块设计12第四章程序实现结果 194.1程序运行结果演示19结束语:20参考文献21致 22多媒体播放器设计第一章绪 论1.1引言多媒体就是多重媒体的意恩,可以理解为直接作用于人感官的文字、图形、 图像、动画、声音和视频等各种媒体的统称,即多种信息载体的表现形式和传递 方式。我们所提到的多媒体技术,就是利用电脑把文字、图形、影象、动画、声 音及视频等媒体信息都数位化,并将其整合在一

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

24、通常这种压缩属于有损数据压缩。ffdshow是一套免费的编解码软件,可支持H.264、FLV、WMV、MPEG-1、 MPEG-2以及 MPEG-4等格式视频档。ffdshow本身并不包含媒体播放器,但各 种媒体播放器都可以使用ffdshow 进行解码。2.2.2软件的模块设计多媒体播放器:打开模块、播放模块、暂停模块、停止模块、抓图模块、退图1:多媒体播放器模块设计打开模块:打开目标文件,如音频、视频。退出模块:关闭播放器。播放模块:播放音频、视频。暂停模块:暂时停止正在播放的音/视频文件。停止模块:结束当前视频的播放。抓图模块:对视频进行截图保存。拖拽模块:拖拽音/视频的进度条,控制音量的

25、大小与视频的进度。菜单模块:设置右键快捷菜单,菜单中包括有对视频播放速率的控制以及全屏、 静音等功能。歹:rinutil. cpp:il. cpn 02104): /Tfautil. cpp CSIO4: Run(); 播放视频文件m_pFilterGraph-ChangeAudioVolume(m_volume); /改变音量 m_sliderVolume.SetPos(m_volume); /设置音量进度条的位置if (m_playerTimer = 0) 设置定时器m_playerTimer = SetTimer(SLIDER_TIMER, 100, NULL);)(3) 点击“暂停”按

26、钮,暂停播放视频。void CMediaPlayerDlg:OnBnClickedButtonPause()if (m_pFilterGraph != NULL)/如果 CDXGraph 对象不为空,则执行 代码(4) 点击“停止”按钮,停止播放视频。void CMediaPlayerDlg:OnBnClickedButtonStop()if (m_pFilterGraph != NULL)/如果 CDXGraph 对象不为空,则执行 代码m_pFilterGraph-Stop();/ 停止播放视频)(5) 点击“退出”按钮,退出程序。void CMediaPlayerDlg:OnBnClic

27、kedButtonExit()OnBnClickedButtonStop();/ 停止播放CoUninitialize();/关闭程序的所有线程CDialog:OnOK();/关闭窗口)(6) 点击“抓图”按钮,实现视频截图功能,并且将图片保存到软件的同一 目录下。void CMediaPlayerDlg:OnBnClickedButtonGrasp()static int c = 0;TCHAR szFilenameMAX_PATH;DWORD dwPathLen = 0;if(dwPathLen=:GetModuleFileName(:AfxGetInstanceHandle(),szFi

28、lena me, MAX_PATH ) = = 0)/得到程序整个路径名长度 return;)for( int i=dwPathLen-1; i = 0; i-) 获取图片保存的目录if(f = szFilenamei) |(7 = szFilenamei)break; else szFilenamei =0;设置图片保存的完整路径名称CString str;str.Format(_T(%s),szFilename);CString strTemp;strTemp.Format(_T(%d”),c);str += strTemp + _T(.bmp);c+;TCHAR *p=str.GetBu

29、ffer(str.GetLength();str.ReleaseBuffer();进行抓图,并且将图片放在指定路径下if (m_pFilterGraph != NULL)if (m_pFilterGraph-SnapshotBitmap(p)else MessageBox(_T(抓图失败!”);(7) 实现拖拽功能,使得手动拖动进度条控件,能够控制音量的大小以及 视频的进度。void CMediaPlayerDlg:OnHScroll(UINT nSBCode, UINT nPos,CScrollBar* pScrollBar)if(pScrollBar-GetSafeHwnd() = =m_sliderPlayer.GetSafeHwnd()如果拖动消息来自视频进度条,则执行代码 double duration =1.0;/定义事件长度对象m_pFilterGraph-GetDuration(&duration);/ 获取流媒体文件时间长度double pos = duration * m_sliderPlayer.GetPos()/1000.0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号