多语种视频音频播放器的设计与实现-计算机毕业设计_第1页
多语种视频音频播放器的设计与实现-计算机毕业设计_第2页
多语种视频音频播放器的设计与实现-计算机毕业设计_第3页
多语种视频音频播放器的设计与实现-计算机毕业设计_第4页
多语种视频音频播放器的设计与实现-计算机毕业设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

PAGE第33页共25页毕业设计(论文)多语种视频音频播放器的设计与实现论文作者姓名:申请学位专业:申请学位类别:论文提交日期:多语种视频音频播放器的设计与实现摘要随着计算机的广泛运用,Internet的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的电脑造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,还能播放RM,RMVB格式的视频文件。此外,还能支持中文、日文、英文等语言界面。首先研究了各种市场上流行的播放器,如MEDIAPLAYER,REALONE等,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点。其次,选择了Windows自带的WindowsMediaPlayer和PPstream的PowerPlayer.dll两种比较优秀的插件进行开发,编写出功能实用,使用方便快捷的播放器。目前已经实现的功能有能播放常见视频音频文件的功能,如MP3,AVI,WMV,RM,RMVB等,拥有播放菜单,能选择节目,具备一般播放器的功能,如快进,快退,音量调节等。播放模式也比较完善,有单曲,顺序,循环,随机播放等模式。此外,界面能支持中文,日文,英文三种语言。关键词:计算机应用技术;音频视频;播放器;插件DesignandImplementationofMultilingualMultimediaPlayerAbstractAlongwithcomputerwidespreadapplicationandInternetrapiddevelopment,manykindsofaudioandvideoresourcesalsowidelyspreadon-line.Theseresourceslookveryordinary,butgraduallybecameanessentialpartofpeople’sdailylife.Thereafter,veriousplayersweredeveloped.Butmanydesignerspursueonlythefashionableappearanceandversatilefunctionsonplayers’design.Henceresources’wastewascaused.Forexample,CPUandMemoryareexcessivelytaken.Whenusersneedthemulti-taskoperation,itwillbringmuchmoretrouble.Butregardingthemajorityaverageusers,manyfunctionsarenotnecessary.Againsttheshortcomings,amultilingualaudioandvideoplayerisdevelopedwhichremainthecommonlyusedfunctionsandoptimizetheperformance.Commonuserscanbesatisfiedforlisteningmusicandwatchingfilm.Exceptforthecommonformofvocalvideofiles,theRMandRMVBformvideofilescanbeplayedontheplayer.Inaddition,thesedocumentscanbeplayedinChinese,JapaneseandEnglish.Thisgraduationprojectprimarymission:Firstly,variouspopularplayersarestudiedsuchasMEDIAPLAYER,REALONEandsoonincludingtheirembeddedmodules,encodingmethodsanddataformat.Advantagesanddisadvantagesamongtheseplayersareanalyzed.Thentwokindsofexcellentactivecomponentsarechosentodevelopsothatapracticalplayer,whichiseasytooperate,isimplemented.Atpresent,theexpectfunctionshaverealizedsuchasMP3,WMV,AVI,RMandRMVBdocumentsplayingandsoon.Onecanchoosetheprogramtoplayaccordingtothemenu.Theplayerhasthefamiliarfunctionssuchasfastforward,fastbackward,volumecontrolandsoon.Ithasvariousplayingmodessuchassingle,order,circulation,andrandommode.Inaddition,itcanbeplayedinChinese,JapaneseandEnglish.Keywords:ComputerApplicationTechnology;AudioandVideo;Player;Plug-in目录论文总页数:25页1 引言 11.1 课题背景 11.2 国内外知名播放软件介绍 11.3 课题的研究方法 22 调查分析 32.1 需求分析 32.1.1 功能需求 32.1.2 客户需求 32.2 可行性研究 32.3 各类音频视频文件的分析 33 环境搭建 74 程序设计 84.1 基本设计 84.2 程序流程图 94.3 代码实现过程 104.3.1 播放控件的接口属性 104.3.2 播放器外观界面设计 124.3.3 添加曲目的实现 124.3.4 媒体文件的筛选 134.3.5 媒体文件类型的获取 134.3.6 实现多种播放模式 145 测试 155.1 测试前的分析 155.2 音频文件播放测试 155.3 视频文件测试 175.4 多语种界面测试 205.5 资源占用测试 215.6 测试结果的总结 22结论 23参考文献 23致谢 24声明 25引言课题背景随着计算机的广泛运用,Internet的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种播放器也紧跟着发展起来,但是也因此产生了许多负面影响,对用户的电脑造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便。国内外知名播放软件介绍目前,国外比较著名的播放器有微软公司的WindowsMediaPlayer和RealNetworks公司的RealPlayer。WindowsMediaPlayer是多功能媒体播放机,利用它,在WindowsXPPC和多种便携设备上的任何地方都可以轻松愉悦地发现、播放和利用数字媒体。这是微软公司基于DirectShow基础之上开发的媒体播放软件。它提供最广泛,最具可操作性,最方便的多媒体内容。可以播放更多的文件类型,包括:WindowsMedia(即以前称为NetShow的),ASF,MPEG-1,MPEG-2,WAV,AVI,MIDI,VOD,AU,MP3,和QuickTime文件。所有这些都用一个操作简单的应用程序来完成。WindowsMediaPlayer能播放从低带宽的声音文件到全屏的图像文件,还可重设图像窗口,甚至设成全屏,以便更好地播放。而RealPlayer也是由RealNetworks公司推出一种新型音-视频综合播放系统,它的一大特点就是多层画面功能,即当一个屏幕播放影碟或歌曲的时候,旁边将有一个侧屏幕提供有关影碟或歌曲的信息或广告。RealPlayer支持所有最新的格式,除了能播放QuickTime、WindowsMedia或MPEG音频和视频文件外,还可以播放DVD、VCD等文件。此外,RealPlayer独立地支持RM,RMVB格式的视频文件。音频播放软件中比较知名的要属于Winamp,它是一个非常著名的高保真的音乐播放软件,支持MP3,MP2,MOD,S3M,MTM,ULT,XM,IT,669,CD-Audio,Line-In,WAV,VOC等多种音频格式。可以定制界面skins,支持增强音频视觉和音频效果的Plug-ins。捆绑了DFX、Dee2等世界一流的音效处理软件,还可以支持目前比较流行的LRC歌词同步显示。国内的视频音频播放软件与国外相比,就比较逊色了。比较有影响力的是豪杰公司推出的《超级解霸》,《豪杰超级解霸》是以著名的国际软件专家梁肇新先生为首的豪杰精英研发团队,经过5年精心锤炼打造而成。该新品独创多项领先国际的多媒体软解压技术,实现了影音文件的高清晰多声道环绕播放,这较以前版本而言取得了巨大的创新和突破。其中尤为值得一提的是豪杰公司独创“HDFT增益滤波技术”,鼠标轻点瞬间将给用户带来“化腐朽为神奇,使模糊变清晰”的奇妙体验,这项技术将改变平日我们观看RM等高压缩格式影片模糊不清的局面。此外,《超级解霸》还支持声道的转换,在播放多语种视频文件是就可以轻松切换语言了。它还拥有图像抓取功能,可以随时获取视频文件播放中的每个画面。国内比较优秀的音频播放软件有千千静听,它拥有自主研发的全新音频引擎,支持DirectSound、KernelStreaming和ASIO音频流输出、32比特合成、AddIn插件扩展技术,具有资源占用低、运行效率高、扩展能力强等优点。支持MP3/mp3PRO、AAC/AAC+、M4A/MP4、WMA、APE、MPC、OGG、CD、WAVE、FLAC、RM、TTA、AIFF、AU等音频格式和多种MOD音乐格式,支持CUE音轨索引文件,支持所有格式到WAVE、MP3、APE、WMA等格式的转换,通过基于COM接口的AddIn插件可以支持更多格式的播放和转换。支持采样频率转换(SSRC)和8/16/24/32比特输出,支持回放增益,支持10波段均衡器、多级杜比环绕、淡入淡出音效,兼容并可同时激活多个Winamp2的音效插件。支持ID3v1/v2、APE、WM和批量标签编辑、繁简体转换、以标签格式重命名文件,支持Unicode。支持同步歌词滚动显示和拖动定位播放,并且支持歌词下载和歌词编辑功能。支持多播放列表和音频文件搜索,支持多种视觉效果,采用XML格式的ZIP压缩的皮肤,同时具有磁性窗口、半透明/淡入淡出窗口、任务栏图标、自定义快捷键、信息滚动、菜单功能提示等功能。课题的研究方法通过研究播放插件的内部接口属性,了解其支持的各种文件格式,然后选择两种播放控件,再通过C#.net进行播放器的开发,使其各种接口的功能得到充分发挥。使其拥有一般播放器的功能,如播放,暂停,快进,快退,有播放菜单,可以选择节目,并且支持多种播放模式,如单曲播放,循环播放,顺序播放,随机播放等。另外还加入多语言操作界面,完善播放器的一些高级功能。调查分析需求分析功能需求本毕业设计的题目是多语种音频视频播放器,所以播放器的功能需求主要有以下内容:(1)拥有一般播放器的基本功能,即能够正常播放各种音频视频节目,音量调节,和正常打开关闭程序。(2)拥有一般播放器的高级功能,如拥有播放菜单,可以随时添加删除播放节目,并可以控制播放曲目,如快进,快退,可以选择上一曲,下一曲,在播放视频节目时可以全屏播放等。(3)拥有多种播放模式,如能够单曲播放,单曲循环播放,顺序播放,循环播放,随机播放等功能。客户需求客户除了要求拥有功能需求中的功能以外,还有以下几点需求:(1)可以支持多语言界面,包括中文,日文,英文三种语言,可以随时方便地切换语种。(2)软件能在低配置的硬件环境下正常运行,即对资源占用少,方便快捷。可行性研究根据本播放软件的开发要求,选用所熟悉的开发工具VisualStudio2005,选择C#.NET进行开发。并且选用了两种播放控件,一个是Windows自带的WindowsMediaPlayer和PPstream的PowerPlay.dll插件。所以在技术上是完全可行的。本系播放软件的开发,对硬件要求一般,只要能正常运行ASP2.0即可,所以只要CPU在奔腾III以上级别,内存大于256M都可以进行开发,因此在经济上也是完全可行的。各类音频视频文件的分析为了开发能播放各种常见格式的音频视频文件的多功能播放器,因此首先分析各种音频视频文件的分类及各自的特点。AVI格式:它的英文全称为Audio

Video

Interleaved,即音频视频交错格式。它于1992年被Microsoft公司推出,随Windows3.1一起被人们所认识和熟知。所谓“音频视频交错”,就是可以将视频和音频交织在一起进行同步播放。这种视频格式的优点是图像质量好,可以跨多个平台使用,其缺点是体积过于庞大,而且更加糟糕的是压缩标准不统一,最普遍的现象就是高版本Windows媒体播放器播放不了采用早期编码编辑的AVI格式视频,而低版本Windows媒体播放器又播放不了采用最新编码编辑的AVI格式视频,所以我们在进行一些AVI格式的视频播放时常会出现由于视频编码问题而造成的视频不能播放或即使能够播放,但存在不能调节播放进度和播放时只有声音没有图像等一些莫名其妙的问题,如果用户在进行AVI格式的视频播放时遇到了这些问题,可以通过下载相应的解码器来解决。MPEG格式:它的英文全称为Moving

Picture

Expert

Group,即运动图像专家组格式,家里常看的VCD、SVCD、DVD就是这种格式。MPEG文件格式是运动图像压缩算法的国际标准,它采用了有损压缩方法减少运动图像中的冗余信息,说的更加明白一点就是MPEG的压缩方法依据是相邻两幅画面绝大多数是相同的,把后续图像中和前面图像有冗余的部分去除,从而达到压缩的目的(其最大压缩比可达到200:1)。目前MPEG格式有三个压缩标准,分别是MPEG-1、MPEG-2、和MPEG-4,另外,MPEG-7与MPEG-21仍处在研发阶段。

MPEG-1:制定于1992年,它是针对1.5Mbps以下数据传输率的数字存储媒体运动图像及其伴音编码而设计的国际标准。也就是我们通常所见到的VCD制作格式。使用MPEG-1的压缩算法,可以把一部120分钟长的电影压缩到1.2GB左右大小。这种视频格式的文件扩展名包括.mpg、.mlv、.mpe、.mpeg及VCD光盘中的.dat文件等。

MPEG-2:制定于1994年,设计目标为高级工业标准的图像质量以及更高的传输率。这种格式主要应用在DVD/SVCD的制作(压缩)方面,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当的应用。使用MPEG-2的压缩算法,可以把一部120分钟长的电影压缩到4到8GB的大小。这种视频格式的文件扩展名包括.mpg、.mpe、.mpeg、.m2v及DVD光盘上的.vob文件等。

MPEG-4:制定于1998年,MPEG-4是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求使用最少的数据获得最佳的图像质量。目前MPEG-4最有吸引力的地方在于它能够保存接近于DVD画质的小体积视频文件。另外,这种文件格式还包含了以前MPEG压缩标准所不具备的比特率的可伸缩性、动画精灵、交互性甚至版权保护等一些特殊功能。这种视频格式的文件扩展名包括.asf、.mov和DivX

AVI等。DivX格式:这是由MPEG-4衍生出的另一种视频编码(压缩)标准,也即我们通常所说的DVDrip格式,它采用了MPEG4的压缩算法同时又综合了MPEG-4与MP3各方面的技术,说白了就是使用DivX压缩技术对DVD盘片的视频图像进行高质量压缩,同时用MP3或AC3对音频进行压缩,然后再将视频与音频合成并加上相应的外挂字幕文件而形成的视频格式。其画质直逼DVD并且体积只有DVD的数分之一。这种编码对机器的要求也不高,所以DivX视频编码技术可以说是一种对DVD造成威胁最大的新生视频压缩格式,号称DVD杀手或DVD终结者。MOV格式:QuickTime(MOV)是Apple计算机公司开发的一种音频、视频文件格式,用于保存音频和视频信息,具有先进的视频和音频功能,被包括Apple

Mac

OS、Microsoft

Windows

95/98/NT在内的所有主流电脑平台支持。QuickTime文件格式支持25位彩色,支持RLE、JPEG等领先的集成压缩技术,提供150多种视频效果,并配有提供了200多种MIDI兼容音响和设备的声音装置。新版的QuickTime进一步扩展了原有功能,包含了基于Internet应用的关键特性,能够通过Internet提供实时的数字化信息流、工作流与文件回放功能,此外,QuickTime还采用了一种称为QuickTime

VR

(简称QTVR)技术的虚拟现实(Virtual

Reality,

VR)技术,用户通过鼠标或键盘的交互式控制,可以观察某一地点周围360度的景象,或者从空间任何角度观察某一物体。QuickTime以其领先的多媒体技术和跨平台特性、较小的存储空间要求、技术细节的独立性以及系统的高度开放性,得到业界的广泛认可,目前已成为数字媒体软件技术领域的事实上的工业标准。国际标准化组织(ISO)最近选择QuickTime文件格式作为开发MPEG4规范的统一数字媒体存储格式。RM格式:Networks公司所制定的音频视频压缩规范称之为RealMedia,用户可以使用RealPlayer或RealOnePlayer对符合RealMedia技术规范的网络音频/视频资源进行实况转播,并且RealMedia还可以根据不同的网络传输速率制定出不同的压缩比率,从而实现在低速率的网络上进行影像数据实时传送和播放。这种格式的另一个特点是用户使用RealPlayer或RealOnePlayer播放器可以在不下载音频/视频内容的条件下实现在线播放。

RMVB格式:这是一种由RM视频格式升级延伸出的新视频格式,它的先进之处在于RMVB视频格式打破了原先RM格式那种平均压缩采样的方式,在保证平均压缩比的基础上合理利用比特率资源,就是说静止和动作场面少的画面场景采用较低的编码速率,这样可以留出更多的带宽空间,而这些带宽会在出现快速运动的画面场景时被利用。这样在保证了静止画面质量的前提下,大幅地提高了运动图像的画面质量,从而图像质量和文件大小之间就达到了微妙的平衡。PCM编码的WAV:PCM编码的WAV文件是音质最好的格式,Windows平台下,所有音频软件都能够提供对她的支持。Windows提供的WinAPI中有不少函数可以直接播放wav,因此,在开发多媒体软件时,往往大量采用wav,用作事件声效和背景音乐。PCM编码的wav可以达到相同采样率和采样大小条件下的最好音质,因此,也被大量用于音频编辑、非线性编辑等领域。其音质非常好,被大量软件所支持,适用于多媒体开发、保存音乐和音效素材。

MP3:MP3具有不错的压缩比,使用LAME编码的中高码率的mp3,听感上已经非常接近源WAV文件。使用合适的参数,LAME编码的MP3很适合于音乐欣赏。由于MP3推出年代已久,加之不错的音质及压缩比,不少游戏也使用mp3作事件音效和背景音乐。几乎所有著名的音频编辑软件也提供了对MP3的支持,可以将mp3像wav一样使用,但由于mp3编码是有损的,因此多次编辑后,音质会急剧下降,mp3并不适合保存素材,但作为作品的demo确实相当优秀的。mp3长远的历史和不错的音质,使之成为应用最广的有损编码之一,网络上可以找到大量的mp3资源,mp3player日渐成为一种时尚。不少VCDPlayer、DVDPlayer甚至手机都可以播放mp3,mp3是被支持的最好的编码之一。MP3也并非完美,在较低码率下表现不好。MP3也具有流媒体的基本特征,可以做到在线播放。其音质好,压缩比比较高,被大量软件和硬件支持,应用广泛。适用于比较高要求的音乐欣赏。

OGG:Ogg是一种非常有潜力的编码,在各种码率下都有比较惊人的表现,尤其中低码率下。Ogg除了音质好之外,她还是一个完全免费的编码,这对ogg被更多支持打好了基础。Ogg有着非常出色的算法,可以用更小的码率达到更好的音质,128kbps的Ogg比192kbps甚至更高码率的mp3还要出色。Ogg的高音具有一定的金属味道,因此在编码一些高频要求很高的乐器独奏时,Ogg的这个缺陷会暴露出来。OGG具有流媒体的基本特征,但现在还没有媒体服务软件支持,因此基于ogg的数字广播还无法实现。Ogg目前的被支持的情况还不够好,无论是软件的还是硬件的,都无法和mp3相提并论。但它可以用比mp3更小的码率实现比mp3更好的音质,高中低码率下均具有良好的表现。适用于用更小的存储空间获得更好的音质(相对MP3)。

MPC:和OGG一样,MPC的竞争对手也是mp3,在中高码率下,MPC可以做到比竞争对手更好音质,在中等码率下,MPC的表现不逊色于Ogg,在高码率下,MPC的表现更是独孤求败,MPC的音质优势主要表现在高频部分,MPC的高频要比MP3细腻不少,也没有Ogg那种金属味道,是目前最适合用于音乐欣赏的有损编码。由于都是新生的编码,和Ogg际遇相似,也缺乏广泛的软件和硬件支持。MPC有不错的编码效率,编码时间要比OGG和LAME短不少。特点是中高码率下,具有有损编码中最佳的音质表现,高码率下,高频表现极佳。适用于在节省大量空间的前提下获得最佳音质的音乐欣赏。WMA:微软开发的WMA同样也是不少朋友所喜爱的,在低码率下,有着好过mp3很多的音质表现,WMA的出现,立刻淘汰了曾经风靡一时的VQF编码。有微软背景的WMA获得了很好的软件及硬件支持,WindowsMediaPlayer就能够播放WMA,也能够收听基于WMA编码技术的数字电台。因为播放器几乎存在于每一台PC上,越来越多的音乐网站都乐意使用WMA作为在线试听的首选了。除了支持环境好之外,WMA在64-128kbps码率下也具有相当出色的表现,虽然不少要求较高的朋友并不够满意,但更多要求不高的朋友接受了这种编码,WMA很快的普及开了。低码率下的音质表现难有对手,适用于数字电台架设、在线试听、低要求下的音乐欣赏。mp3PRO:作为mp3的改良版本的mp3PRO表现出了相当不错的素质,高音丰满,虽然mp3PRO是通过SBR技术在播放过程中插入的,但实际听感相当不错,虽然显得有点单薄,但在64kbps的世界里已经没有对手了,甚至超过了128kbps的mp3,但很遗憾的是,mp3PRO的低频表现也像mp3一样的破,所幸的是,SBR的高频插值可以或多或少的掩盖这个缺陷,因此mp3PRO的低频弱势反而不如WMA那么明显。大家可以在使用RCAmp3PROAudioPlayer的PRO开关来切换PRO模式和普通模式时深深的感觉到。整体而言,64kbps的mp3PRO达到了128kbps的mp3的音质水平,在高频部分还略有胜出。它是低码率下的音质之王,适用于低要求下的音乐欣赏。环境搭建为了开发本播放软件,选用了C#.NET进行开发,因此,我安装了VisualStudio2005。VisualStudio2005和.NETFramework2.0将在应用程序开发的所有方面取得大幅进展。首先,VisualStudio2005根据开发人员个人的需要调整软件开发体验,设置新的开发人员工作效率标准。这一“个性化工作效率”将在开发环境和.NETFramework类库中提供相应的功能,以帮助开发人员在最少的时间内克服其最为紧迫的困难。其次,VisualStudio2005使开发人员能够通过与MicrosoftOfficeSystem和SQLServer2005的更好集成,在更广泛的应用程序开发方案中应用现有的技能。最后,VisualStudio2005将提供一组新的工具和功能,以满足目前大规模企业的应用程序开发需要。VisualStudio2005的中心内容主要包括以下几个方面:(1)语言和IDE工作效率。作为VisualStudio一部分的四种语言(VisualBasic、VisualC++、VisualC#和VisualJ#),Microsoft为其每一种语音都构建了独特的特征。这一语言上的革新将丰富每个开发人员群体的编程体验,而不会牺牲现有的语言功能和互操作性。通过语言革新展现的功能将由IDE体现,并且为所有的开发人员团体提供个性化的工作效率。(2)Microsoft.NET与Framework.NET:Framework2.0将在.NETFramework类库中引入增强功能。通过新的控件和设计器功能,将简化Windows客户端应用程序开发,而“ClickOnce”技术的引入将显著简化Windows客户端应用程序部署。ASP.NET2.0引入一组新的功能,以改善Web应用程序开发并在根本上减轻编码工作。其他增强功能包括,更有效的ADO.NET数据访问、对最新Web服务标准的支持以及基于设备的开发的扩展功能。(3)SQLServer2005解决方案开发。SQLServer2005将数据库对象的开发与调试集成到VisualStudio2005开发环境中,从而使开发人员能够使用与其目前用于编写托管组件和应用程序相同的工具来生成和部署数据库对象。程序设计基本设计设计思路:为了播放多种格式的语音视频播放器,选择了两种播放插件,一个是Windows自带的WindowsMediaPlayer播放控件,另一个是PPstream的PowerPlayer.dll播放控件。WindowsMediaPlayer播放控件主要用于播放常见格式的视频音频文件,如AVI,MPEG,WMV等,而后者则播放RM,RMVB格式的视频文件。因为WindowsMediaPlayer不支持RM,RMVB格式的视频文件播放,想要播放RM,RMVB格式文件,必须有能支持RM,RMVB解码的播放控件。PPstream的PowerPlayer.dll播放控件封装了RM,RMVB编码的插件,因此可以满足要求。而在程序设计时,应该将各种音频视频文件进行分类,普通音频视频格式文件用WindowsMediaPlayer控件播放,其他特殊的格式,如RM,RMVB用PPstream控件播放。而区分这些文件格式的方法也很简单,只需要在打开文件时获取文件的扩展名,如MP3,WMA,AVI等。再在程序中对扩展名进行逻辑判断,如果是常见格式的扩展名,则将多媒体文件用WindowsMediaPlayer控件播放,其他情况就用PPstream控件播放。此外,播放器在播放完一个文件时,应判断是该停止,还是继续播放,因此又形成了一个循环的关系。而这个循环关系也不是一个简单的循环,并不是单纯的播放下一个多媒体文件。还应根据当前的播放模式有所不同。如单曲循环播放模式的下一个播放文件还是当前文件,普通模式则是播放下一个文件,但是当文件指针指到了最后一个文件时,就应该停止播放,而全部循环模式则应播放列表中的第一个文件。最后是随机模式,它播放的下一个文件是随机的,也就是不可推测的。如果满足停止条件,则程序正常终止。程序流程图NN开始选择界面语种添加文件rm,rmvb格式?播放常见格式播放rm,rmvb格式Y播放暂停等操作是否停止?N结束Y图一程序流程图代码实现过程播放控件的接口属性为了能够播放各种音频视频格式的文件,选用了两种播放控件,一个是Windows自带的WindowsMediaPlayer播放控件,另一个是PPstream的PowerPlayer.dll播放控件。(2.4.2的设计思路中已经解释了原因)。WindowsMediaPlayer播放控件主要用于播放常见格式的视频音频文件,如AVI,MPEG,WMV等,而后者则播放RM,RMVB格式的视频文件。WindowsMediaPlayer控件接口属性:URL:String;指定媒体位置,本机或网络地址

uiMode:String;播放器界面模式,可为Full,

Mini,

None,

Invisible

playState:integer;播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪

enableContextMenu:Boolean;启用/禁用右键菜单

fullScreen:boolean;是否全屏显示

[controls]wmp.controls

//播放器基本控制

controls.play;播放

controls.pause;暂停

controls.stop;停止

controls.currentPosition:double;当前进度

controls.currentPositionString:string;当前进度,字符串格式。如“00:23”

controls.fastForward;快进

controls.fastReverse;快退

controls.next;下一曲

controls.previous;上一曲

[settings]wmp.settings

//播放器基本设置

settings.volume:integer;音量,0-100

settings.autoStart:Boolean;是否自动播放

settings.mute:Boolean;是否静音

settings.playCount:integer;播放次数

[currentMedia]wmp.currentMedia

//当前媒体属性

currentMedia.duration:double;媒体总长度

currentMedia.durationString:string;媒体总长度,字符串格式。如“03:24”

currentMedia.getItemInfo(const

string);获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址

currentMedia.setItemInfo(const

string);通过属性名设置媒体信息

currentM:string;同

currentMedia.getItemInfo("Title")

[currentPlaylist]wmp.currentPlaylistPPstream的PowerPlayer.dll控件接口属性:voidAboutBox():显示关于PPStream对话框.voidGetAuthorString(BSTR*pbstr):获取当前播放的视频或音频的作者名。voidGetTitleString(BSTR*pbstr):获得当前播放的视频或者音频的名称。longGetControlPanelHeight():获得播放器控制面板的高度。booleanGetFullScreen():获知当前是否正在全屏幕播放.voidSetFullScreen(BOOLbFullScreen):设置是否全屏幕播放。longGetHWND():获得播放控件的窗口句柄。longGetPlayDuration():获得播放时长。longGetPlayPosition():获得播放进度.(在直播中,无法获得播放进度)。booleanIsPsConnected():获知播放器时候已经连入了PPStream网络。longPause():暂停.切记:恢复播放依然调用Pause();函数。返回值:1暂停成功;2恢复播放成功;-1无效booleanPlay():播放。返回值:1播放成功;0播放失败.booleanStop():停止播放。返回值:1,停止成功;0停止失败voidShowPropertyDialog():显示网络属性对话框属性。BSTRsrc:PStream地址或者传统流媒体地址(mms,rtsp,http等),本地文件地址等.支持Real和WindowsMedia所有格式。booleanShowControl:是否显示播放控制区。booleanautostart:是否创建播放器后自动播放src所指定的地址。booleantopmost:是否把窗口置于顶端。booleanautosize:视频区域是否随着播放窗口变化而改变尺寸。BSTRScrollTextURL:下方滚动文字资讯的网址,PowerPlayer会自动解析网址中的超链接和文字作为资讯链接滚动显示.BSTRSkinPath:界面Skin的本地路径.ApplicationData\\ppStream目录下的相对路径或本机绝对路径.BSTRLogo:Logo图片的本地路径.Gif,Jpg等windows默认支持的所有图片格式.ApplicationData\\ppStream目录下的相对路径或本机绝对路径.建议多帧GIF,动画会在缓冲期间播放.BSTRClient:客户端代码,OEM客户有效。booleanShowPosition:是否显示播放进度条。booleanShowAbout:右键菜单中是否显示关于对话框。shortVolume:音量,0-100。longShowProperty:右键菜单中是否显示”属性”。booleanShowLogo:是否显示LOGO。booleanMute:是否静音。BooleanEnableContextMenu:是否显示右键菜单。播放器外观界面设计设计如图所示:图二界面设计图添加曲目的实现调用了OpenFileDialog()方法,并对初始文件夹进行了设置。接着先取得文件名,再用Substring取得文件扩展名,最后将文件名全部放入菜单控件。OpenFileDialogopFile=newOpenFileDialog();opFile.Multiselect=true;opFile.InitialDirectory="D:\\MyDoncument";opFile.RestoreDirectory=true;opFile.ShowDialog();string[]Fname;stringEname;Fname=opFile.FileNames;Ename=opFile.FileName.Substring(opFile.FileName.LastIndexOf(".")+1);this.fileType.Text=Ename;if(Fname.Length>0){for(inti=0;i<Fname.Length;i++){this.lstPlaylist.Items.Add(Fname[i]);}this.lstPlaylist.SelectedIndex=0;}媒体文件的筛选调用了Filter方法,对打开的文件进行了筛选分类,并对FilterIndex(索引)进行了设置。opFile.Filter="音频文件(*.mp3;*.wma)|*.mp3;*.wma视频文件视频文件(*.avi;*.wmv;*.rmvb;*.rm)|*.avi;*.wmv;*.rmvb;*.rm|Allfiles(*.*)|*.*";opFile.FilterIndex=3;媒体文件类型的获取文件类型的获取主要是指文件扩展名的获取,因此采用了Substring方法。///<summary>///文件名///</summary>stringFname;///<summary>///扩展名///</summary>stringEname;Fname=this.lstPlaylist.SelectedItem.ToString();Ename=Fname.Substring(Fname.LastIndexOf(".")+1);this.fileType.Text=Ename;实现多种播放模式自定义了一个枚举类,里面有五种情况,单曲播放,单曲循环播放,顺序播放,全部循环播放,随机播放。然后用了switch方法对各种情况进行判断,并发生不同的事件。publicenumPlayMode{///<summary>///单曲播放///</summary>Single=0,///<summary>///单曲循环播放///</summary>SingleLoop,///<summary>///顺序播放///</summary>shunxu,///<summary>///全部循环播放///</summary>AllLoop,///<summary>///随机播放///</summary>Radom}Randomrand=newRandom()intindex;switch(mode){casePlayMode.Single:return;casePlayMode.SingleLoop:lstPlaylist.SelectedIndex=lstPlaylist.SelectedIndex;break;casePlayMode.shunxu:{if(lstPlaylist.SelectedIndex==lstPlaylist.Items.Count-1)return;elsethis.lstPlaylist.SelectedIndex++;break;}casePlayMode.AllLoop:{if(this.lstPlaylist.SelectedIndex==lstPlaylist.Items.Count-1)this.lstPlaylist.SelectedIndex=0;elsethis.lstPlaylist.SelectedIndex+=1;break;}casePlayMode.Radom:index=(lstPlaylist.SelectedIndex+rand.Next(lstPlaylist.Items.Count))%lstPlaylist.Items.Count;lstPlaylist.SelectedIndex=index;break;default:break;测试测试前的分析要测试本播放软件,需要从功能入手。因为此播放软件是多语种多功能播放软件,因此需要检验本播放软件是否支持各种音频视频文件的正常播放,也就需要搜集各种格式的音频视频文件作为测试的依据。音频文件播放测试MP3格式MP3格式图三MP3播放测试WMA格式WMA格式图四WMA播放测试目前流行的音频格式文件为MP3、WMA等,因此选择了这两种格式的音频文件进行测试。通过以上对音频文件的播放测试,证明播放器软件不仅能正确识别音频格式的文件,而且还能够正常播放音频格式文件,说明了测试结果和预想的一致。视频文件测试WMV格式WMV格式图五WMV播放测试RMRM格式图六RM播放测试AVIAVI格式图七AVI播放测试RMVB格式RMVB格式图八RMVB播放测试目前常见的视频文件格式有AVI,WMV,RMVB,RM,MPEG等,而且RM,RMVB和其他几种格式的视频文件编码方式不同。根据程序设计逻辑,在播放RM,RMVB时,调用的是PPSTREAM的播放控件,因此是测试的重点。通过以上测试可以看出,播放器软件可以识别RM,RMVB,AVI,WMV,RMVB,RM等格式的视频格式文件,并且可以正常播放,证明了测试的结果是成功的。多语种界面测试英文界面英文界面图九英文界面测试图九英文界面测试日文界面日文界面图十日文界面测试图十日文界面测试多语种界面的测试主要是对日文界面,英文界面的测试,因为初始化时的界面是默认的中文界面。通过以上的测试,可以看出播放器软件可以实现中文,日文,英文之间的界面切换,和预想的结果一致。资源占用测试自主开发的播放器自主开发的播放器图十一播放器资源占用测试超级解霸播放器超级解霸播放器图十二超级解霸播放器资源占用测试通过和超级解霸播放器的对比,发现占用的内存资源较少,但占用的CPU资源更多,和预想的结果不完全一样。测试结果的总结通过以上的测试,说明播放器能正常播放MP3、WMA、AVI、MPEG、WMV、RM、RMVB等音频视频文件,还能支持中文、日文、英文的操作界面。在系统资源占用上,通过和超级解霸播放器的对比,发现占用的内存资源较少,但占用的CPU资源更多,经过分析,是因为超级解霸的播放器功能更多,还支持网络升级等服务,因此也更占内存资源,而自主开发的播放器里面采用了线程技术,开辟了一个线程去执行一个线程函数,而这个线程函数就是程序中判断播放文件是否停止的函数,此线程函数被设置成500毫秒执行一次,因此占用的CPU资源也就更多了。结论首先通过对各种音频视频文件编码方式的研究,发现目前的音频视频文件主要有MP3、WMA、AVI、MPEG、WMV,RM、RMVB、DIVX等,其中音频文件MP3以其良好的音质和占用磁盘空间小的优点,成为了发展的主流。另一方面,对于视频文件,想要达到画面音质优秀,同时对磁盘空间占用小的难度很大,目前还没有很好的解决方案,但是由MPEG-4衍生出的DIVX已经开始朝着这个方向发展了,相信在不久的将来,一定可以实现。接着从对多语种音频视频播放器的开发到测试,再将自主开发的播放器和目前流行的几款播放器软件进行的比较和分析,发现自己开发的播放器占用资源虽然少,但功能不如目前流行的播放器那么强大,存在的漏洞数量也可能更多。所以目前流行的播放器之所以这么受欢迎,是因为其外表美观,功能复杂,安全可靠。虽然对硬件要求更高,但是目前的主流硬件配置已经远远高出播放器软件对硬件的要求。最后,多语种音频视频播放器开发的任务已经完成,除了能正常播放常见的音频视频文件,如MP3,WMA,AVI,MPEG,WMV,还能播放RM,RMVB格式的视频文件。支持音量调节,快进、快退的播放控制。支持播放菜单功能,可以添加单个或者多个多媒体文件,任意选择节目进行播放。还可支持多种播放模式,如顺序播放,单曲循环,全部循环,随机播放等。还能支持中、英、日三种语言界面,完全能满足普通用户的要求。但是播放器软件也存在许多缺陷,一是界面不美观,需要改善,二是对CPU资源占用少的优势没有体现出来,还需要进行改良。参考文献[1]微软公司[美].用VB.NET和C#.NET开发Windows应用程序[M].郑宇红,徐泓[译].北京:清华大学出版社,2003。[2]郑宇军.C#2.0程序设计教程[M].北京:清华大学出版社,2005。[3]TomArcher[美].C#技术内幕[M].侯晓霞,柴洪辉[译].北京:清华大学出版社,2002。[4]吴财军.C#经典范例50讲[M].北京:北京希望电子出版社,2003。[5]Detiel.H.M[美].C#

大学教程[M].汤涌涛,李强,葛昊晗[译].北京:电子工业出版社,2003。[6]罗斌.VisualC#.NET[M].北京:中国水利水电出版社,2005。[7]郝春强.C#基础与实例教程[M].北京:中国电力出版社,2002。致谢本文是在陈运老师的热情关心和指导下完成的,她渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向她表示我最衷心的感谢!在论文完成过程中,本人还得到了其他老师和许多同学的热心帮助,本人向他们表示深深的谢意!最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!作者简介姓名:罗云性别:男出生年月:1984年2月20日民族:汉族E-mail:smallwhite@声明关于学位论文使用权和研究成果知识产权的说明:本人完全了解成都信息工程学院有关保管使用学位论文的规定,其中包括:(1)学校有权保管并向有关部门递交学位论文的原件与复印件。(2)学校可以采用影印、缩印或其他复制方式保存学位论文。(3)学校可以学术交流为目的复制、赠送和交换学位论文。(4)学校可允许学位论文被查阅或借阅。(5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程学院。特此声明!作者签名:2007年06月08日"Reallyofnoone?"RobertJordanaskedher. "Ofnoone.Noone.Neitherinjokenorinseriousness.Noroftheeeither." "No?"RobertJordansaidandhecouldfeelthethicknesscominginhisthroatagain."Good.Ihavenotimeforanywoman.Thatistrue." "Notfifteenminutes?"thegypsyaskedteasingly."Notaquarterofanhour?"RobertJordandidnotanswer.Helookedatthegirl,Maria,andhisthroatfelttoothickforhimtotrusthimselftospeak. Marialookedathimandlaughed,thenblushedsuddenlybutkeptonlookingathim. "Youareblushing,"RobertJordansaidtoher."Doyoublushmuch?" "Never." "Youareblushingnow." "ThenIwillgointothecave." "Stayhere,Maria." "No,"shesaidanddidnotsmileathim."Iwillgointothecavenow."Shepickeduptheironplatetheyhadeatenfromandthefourforks.Shemovedawkwardlyasacoltmoves,butwiththatsamegraceasofayounganimal. "Doyouwantthecups?"sheasked. RobertJordanwasstilllookingatherandsheblushedagain. "Don'tmakemedothat,"shesaid."Idonotliketodothat." "Leavethem,"theygypsysaidtoher."Here,"hedippedintothestonebowlandhandedthefullcuptoRobertJordanwhoWatchedthegirlduckherheadandgointothecavecarryingtheheavyirondish. "Thankyou,"RobertJordansaid.Hisvoicewasallrightagain,nowthatshewasgone."Thisisthelastone.We'vehadenoughofthis." "Wewillfinishthebowl,"thegypsysaid."Thereisoverhalfaskin.Wepackeditinononeofthehorses." "ThatwasthelastraidofPablo,"Anselmosaid."Sincethenhehasdonenothing." "Howmanyareyou?"RobertJordanasked. "Wearesevenandtherearetwowomen." "Two?" "Yes.The_mujer_ofPablo." "Andshe?" "Inthecave.Thegirlcancookalittle.Isaidshecookswelltopleaseher.Butmostlyshehelpsthe_mujer_ofPablo." "Andhowisshe,the_mujer_ofPablo?" "Somethingbarbarous,"thegypsygrinned."Somethingverybarbarous.IfyouthinkPabloisuglyyoushouldseehiswoman.Butbrave.AhundredtimesbraverthanPablo.Butsomethingbarbarous." "Pablowasbraveinthebeginning,"Anselmosaid."Pablowassomethingseriousinthebeginning." "Hekilledmorepeoplethanthecholera,"thegypsysaid."Atthestartofthemovement,Pablokilledmorepeoplethanthetyphoidfever." "Butsincealongtimeheis_muyflojo_,"Anselmosaid."Heisveryflaccid.Heisverymuchafraidtodie." "Itispossiblethatitisbecausehehaskilledsomanyatthebeginning,"thegypsysaidphilosophically."Pablokilledmorethanthebubonicplague." "Thatandtheriches,"Anselmosaid."Alsohedrinksverymuch.Nowhewouldliketoretirelikea_matadordetoros_.Likeabullfighter.Buthecannotretire." "Ifhecrossestotheothersideofthelinestheywilltakehishorsesandmakehimgointhearmy,"thegypsysaid."Inmethereisnoloveforbeinginthearmyeither." "Noristhereinanyothergypsy,"Anselmosaid. "Whyshouldtherebe?"thegypsyasked."Whowantstobeinanarmy?Dowemaketherevolutiontobeinanarmy?Iamwillingtofightbutnottobeinanarmy." "Wherearetheothers?"askedRobertJordan.HefeltcomfortableandsleepynowfromthewineandlyingbackontheflooroftheforesthesawthroughthetreetopsthesmallafternooncloudsofthemountainsmovingslowlyinthehighSpanishsky. "Therearetwoasleepinthecave,"thegypsysaid."Twoareonguardabovewherewehavethegun.Oneisonguardbelow.Theyareprobablyallasleep." RobertJordanrolledoveronhisside. "Whatkindofagunisit?" "Averyrarename,"thegypsysaid."Ithasgoneawayfrommeforthemoment.Itisamachinegun." Itmustbeanautomaticrifle,RobertJordanthought. "Howmuchdoesitweigh?"heasked. "Onemancancarryitbutitisheavy.Ithasthreelegsthatfold.Wegotitinthelastseriousraid.Theonebeforethewine." "Howmanyroundshaveyouforit?" "Aninfinity,"thegypsysaid."Onewholecaseofanunbelievableheaviness." Soundslikeaboutfivehundredrounds,RobertJordanthought. "Doesitfeedfromapanorabelt?" "Fromroundironcansonthetopofthegun." Hell,it'saLewisgun,RobertJordanthought. "Doyouknowanythingaboutamachinegun?"heaskedtheoldman. "Nada,"saidAnselmo."Nothing." "Andthou?"tothegypsy. "Thattheyfirewithmuchrapidityandbecomesohotthebarrelburnsthehandthattouchesit,"thegypsysaidproudly. "Everyoneknowsthat,"Anselmosaidwithcontempt. "Perhaps,"thegypsysaid."ButheaskedmetotellwhatIknowabouta_m醧uina_andItoldhim."Thenheadded,"Also,unlikeanordinaryrifle,theycontinuetofireaslongasyouexertpressureonthetrigger." "Unlesstheyjam,runoutofammunitionorgetsohottheymelt,"RobertJordansaidinEnglish. "Whatdoyousay?"Anselmoaskedhim. "Nothing,"RobertJordansaid."Iwasoapistol.Hekeptwavingthepistolandshoutingatthemandwewereallshootingathimbutnoonehithim.Thensometroopslaydownandcommencedfiringandtheofficerwalkedupanddownbehindthemwithhispistolandstillwecouldnothithimandthe_m醧uina_couldnotfireonhimbecauseofthepositionofthetrain.Thisofficershottwomenastheylayandstilltheywouldnotgetupandhewascursingthemandfinallytheygotup,onetwoandthreeatatimeandcamerunningtowardusandthetrain.Thentheylayflatagainandfired.Thenw

温馨提示

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

评论

0/150

提交评论