基于VC的多媒体播放器设计实现分析_第1页
基于VC的多媒体播放器设计实现分析_第2页
基于VC的多媒体播放器设计实现分析_第3页
基于VC的多媒体播放器设计实现分析_第4页
基于VC的多媒体播放器设计实现分析_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、-. z.- . -可修编- .*科技大学普通本科毕业设计论文说明书课题名称 基于VC+的多媒体播放器设计与实现学 院 计算机科学与通信工程学院 专 业 计算机科学与技术(软件工程方向) 班 级 学 号 姓 名 指导教师 2015年 05月 01日-. z.摘 要 随着互联网的快速开展,多媒体技术和多媒体通讯技术的逐步成熟使得信息从单一媒体到多媒体的方向开展,人们对多媒体信息的需求量日益增加,多媒体播放器也应运而流行起来。大多数多媒体播放器软件的功能根本小异,一般都可支持本地媒体文件和网络媒体文件。功能上已经大致完善,但是也有缺乏之处。论文主要作了以下工作: 一、详细地介绍了该课题研究的目的和

2、多媒体技术开展的现状和开展趋势,介绍该课题的主要工作容和难点所在。 二、对软件可行性研究初步工程方案、需求的分析,同时通过用户调查和对软件性能和功能了解制定开发流程,设定好工程的开发环境,之后逐步按流程和需求完成软件的初步设计,对于设计实现过程中的难题,寻找可行的解决方案。 三、对播放器程序的概要设计,播放器系统按功能进展建立和划分模块,以及确立模块与模块的接口,并调用好各模块和整体间连接,再者就是分析好层次构造,设计友好的人机界面,最后再软件的详细设计以及实现主要的功能代码,列出该局部函数的代码。 四、对播放器程序的测试,在特定的测试环境的平台下,主要是于软件所实现的根本功能进展了黑盒测试,

3、通过测试发现输入还有输出的逻辑错误、以及在初始化时、因为错误导致的程序的终止,界面的显示发生不正常,程序的性能和功能发生了不正确错误等等。 通过使用Windows 7 操作系统对多媒体播放器的设计与实现,程序设计的开发工具采用Microsoft Visual C+ 6.0。在程序设计中,使用了微软公司的 Active* 控件Windows Media Player(WMP)通过不断运行调试,初步实现了多媒体播放器的软件开发的根本功能。基于 MFC 集成开发环境,使用Windows操作系统提供的 Active*实现编程。并完成需求的功能。并实现了占用存比拟小,界面简洁明了,功能较完全,支持多格式

4、的视频和音频,同时具有程序强健性强等特点。关键词: 多媒体技术,播放器,Active* ,MFC,多媒体,MCI-. z.AbstractWith the Internet and the development of information technology, multimedia technology matures and multimedia munications technology makes information from a single media to multimedia direction, increasing peoples demand for multi

5、media information, multimedia player should be transported and popular. Most multimedia player software functions substantially similar, generally can support local media files and online media files. The function has been substantially improved, but there are drawbacks. Paper made the following wor

6、k:A detailed description of the current situation and development trend of purpose and multimedia technology development in the research, introduces the main content.Second, preliminary feasibility study of software project planning, requirements analysis, while developing the development process th

7、rough user surveys and understand the performance and functionality of the software, set up the projects development environment, then gradually according to the process and requirements to plete the preliminary design software, For the design and implementation problems in the process, to find viab

8、le solutions.Third, the player programs outline design, player system set up and divided by function module, and the establishment of an interface module and modules, and each module and the overall good call en, addition is good hierarchy analysis, design-friendly detailed design of man-machine int

9、erface, software, and finally achieve the main function of the code.Fourth, the test player program, in platform-specific test environment, primarily in the realization of the basic functions of the software black bo* testing were found to input as well as output of logic errors, and pass the test d

10、uring initialization, because termination errors of the program, the interface displays unusual occurrence, performance and functionality of the program is not correct the error occurred, and so on.Through Windows 7 operating system design and implementation of multimedia player used programming dev

11、elopment tools using Microsoft Visual C + 6.0. In programming, the use of Microsofts Active* controls -Windows Media Player (WMP), by constantly running debugging, the initial realization of the basic functions of the multimedia player software development. MFC-based integrated development environme

12、nt, using Active* Windows operating system provides for programming. And plete functional needs. And to achieve the memory for relatively small, concise interface, features a more plete multi-format video and audio, but also has robust procedures and other characteristics.Keywords: multimedia player

13、, Active*, MFC, multimedia,MCI-. z.目 录TOC o 1-3 h u HYPERLINK l _Toc14294 1 绪论 PAGEREF _Toc14294 1 HYPERLINK l _Toc26324 1.1 前言 PAGEREF _Toc26324 1 HYPERLINK l _Toc14603 1.2背景 PAGEREF _Toc14603 1 HYPERLINK l _Toc10492 1.3研究目的 PAGEREF _Toc10492 3 HYPERLINK l _Toc22743 1.4相关技术 PAGEREF _Toc22743 3 HYPE

14、RLINK l _Toc28653 2 需求分析 PAGEREF _Toc28653 6 HYPERLINK l _Toc1447 2.1 播放器软件根本调查 PAGEREF _Toc1447 6 HYPERLINK l _Toc1719 2.2 软件功能分析 PAGEREF _Toc1719 7 HYPERLINK l _Toc828 2.3 软件运行环境 PAGEREF _Toc828 9 HYPERLINK l _Toc31556 2.4 业务流程分析 PAGEREF _Toc31556 9 HYPERLINK l _Toc17498 2.5 数据流程分析 PAGEREF _Toc174

15、98 10 HYPERLINK l _Toc10170 2.6 可行性分析 PAGEREF _Toc10170 12 HYPERLINK l _Toc2849 3 系统总体设计 PAGEREF _Toc2849 13 HYPERLINK l _Toc7180 3.1 概要设计 PAGEREF _Toc7180 13 HYPERLINK l _Toc19672 3.2 界面设计 PAGEREF _Toc19672 16 HYPERLINK l _Toc4345 4 详细设计 PAGEREF _Toc4345 18 HYPERLINK l _Toc32121 4.1 功能模块详细设计 PAGERE

16、F _Toc32121 18 HYPERLINK l _Toc6145 4.1.1 文件模块设计 PAGEREF _Toc6145 21 HYPERLINK l _Toc18497 4.1.2 播放控制模块设计 PAGEREF _Toc18497 23 HYPERLINK l _Toc6178 4.1.3 播放列表模块设计 PAGEREF _Toc6178 28 HYPERLINK l _Toc9741 4.1.4 播放循环模块实现 PAGEREF _Toc9741 31 HYPERLINK l _Toc25943 4.1.5 音量模块实现 PAGEREF _Toc25943 32 HYPER

17、LINK l _Toc1865 4.1.6 定时关闭 PAGEREF _Toc1865 33 HYPERLINK l _Toc28974 4.1.7 对话框初始化 PAGEREF _Toc28974 35 HYPERLINK l _Toc14017 5 软件测试 PAGEREF _Toc14017 37 HYPERLINK l _Toc17649 5.1测试方案 PAGEREF _Toc17649 37 HYPERLINK l _Toc918 5.2测试用例 PAGEREF _Toc918 37 HYPERLINK l _Toc14903 根据测试过程制定两组测试用例,用例组如下表5.1和表5

18、.2所示. PAGEREF _Toc14903 37 HYPERLINK l _Toc29721 5.3黑盒测试 PAGEREF _Toc29721 38 HYPERLINK l _Toc19668 5.3.1文件功能 PAGEREF _Toc19668 39 HYPERLINK l _Toc4202 5.3.2播放控制功能 PAGEREF _Toc4202 40 HYPERLINK l _Toc31113 5.3.3播放列表功能 PAGEREF _Toc31113 41 HYPERLINK l _Toc2813 5.3.4音量控制模块 PAGEREF _Toc2813 42 HYPERLIN

19、K l _Toc30427 5.3.5播放模式模块 PAGEREF _Toc30427 43 HYPERLINK l _Toc32385 5.3.6定时关闭模块 PAGEREF _Toc32385 44 HYPERLINK l _Toc16891 完毕语 PAGEREF _Toc16891 45 HYPERLINK l _Toc29625 致 PAGEREF _Toc29625 46 HYPERLINK l _Toc1964 参考文献 PAGEREF _Toc1964 47-. z.1 绪论前言随着科学技术的开展,在计算机,手机普及的今天,信息传播速度越来越快,也越来越广,多媒体作为一种将图像

20、,声音,文本等多种媒体据为一身的存在形式,在计算机、手机、随身听等载体中出现,成为人们在生活中获取信息来源之一。在互联网起步的年代,网络技术、计算机硬件水平较低的限制,人们获取新闻信息主要还是以看报纸,电视,还有人与人间的交流,媒体的传播主要以方式播送电视里,DVD播放器,当今网络技术的不断提高、迅速开展,人们能够更方便的连接互联网来获取信息,流媒体的出现,多媒体的开展对世界的信息文化传播起到了促进作用,加快了信息全球化的开展,同时也成为了信息化今天的一局部。播放器作为一种播放视频或音频文件的软件,把数字信号加工处理成图片声音等多种方式,识别展现同时存在一种或者多种媒体文件,媒体作为信息的载体

21、,存储设备作为媒体的载体,由载体(硬盘等)播放器多媒体信息(视频音频),使得存在载体中的媒体信息得以彰显。,大多数播放器携带解码器用来复原已经过的压缩媒体文件,同时播放器还需要自带一组变换频率缓冲算法。现在播放器主要为音频播放器(代表软件:天天动听,千千静听,酷狗,QQ音乐等)和视频播放器(代表软件:RealPlayer,KMPlayer,暴风影音,迅雷看看等)。常用多媒体的文件主要格式包括:音频格式(AIFF;AAC;MP3;WAVE;WMA等)、视频格式(F4V;AVI;RMVB;MOV,WMV,MKV等)。1.1.1 设计目标设计一个能支持多种格式,包括视频格式和音频格式的的播放器,有良

22、好的人机交互界面,且播放功能完善,还附加其他需求的而添加的功能,支持播放列表,音量控制等,具体的功能根本符合当今视频音频播放器的需求来设计,并在这标准上根据自己的需要做一下修改。1.2背景 媒体是作为信息载体的一种形式,在计算机中,它有两种含义:1.作为传播信息的载体,有包括文字、图片、声音、语言、视频、音频等。2.作为存储信息的载体,比方ROM只读存储器、RAM存、磁盘等储存设备。媒体作为信息的载体,它接收各式的数据信息,如图像,声音,文字等,再经过了计算机处理以及加工之后,以文字形式、声音形式、图片形式、动画形式等多种形式彰显,实现 输入/输出(I/O) 方式的多元化,同时改变了旧时计算机

23、只能承受输入输出文字 信息、数据信息的局限性。通常我们将媒体分为了五大类: 1、感觉媒体:能够直接作用于人的感官,使人产生感觉的媒体,如声音、图像、动画、文字等。 2、表示媒体:为传输感觉而创造出来的中间手段,能够使感觉有效地从一处传递到另一处。 3、表现媒体:用在感觉媒体和信息传输中电信号之间转换所用的媒体,大致是指信息输入、输出的工具设备。包括输入媒体例如:鼠标、摄像机、键盘以及麦克风等和输出媒体例如:屏幕、纸和喇叭等。 4、存储媒体:以存储表示媒体的载体。5、传输媒体:用来将表示媒体从*一处传输到另一处的物理实体。用来进展网络传输的通讯介质例如:有线方式有同轴电缆、光纤以及双绞线等,而无

24、线方式则有wifi、蓝牙和红外线等。 周长发:Visual C+.NET 多媒体编程.:电子工业,2002年 多媒体作为近几年出现的新生事物,是融合两种或者多种媒体的形式,我们称之为多媒体,这种混合形式的信息载体,在当今的地位显得越来越重要,在人们去信息需求量大的今天,多媒体举足轻重,相信在不久的一段时间中,多媒体会朝着更好的方向快速的开展,如全息投影虚拟成像技术,都开场新的技术革命。人承受信息主要通过:视觉、听觉、嗅觉、触觉、味觉。也就是说明人有五种承受信息的方式,文字信息只能靠视觉获取,声音靠听觉,同理气味靠嗅觉和味觉,压力和温度靠触觉。其中90%的信息来自视觉,想象一下。光是看一段动画就

25、类似感觉到了90%的信息,此时再加上声音,温度,压力,气味的结合,那就是身临其境了吗?多媒体技术(Multimedia Technology)是一种将计算机中图像方面、文字方面和声音方面等各式各样的信息融合一体,形成了计算机和用户之间人机交互作用的技术。多媒体技术涉及的是计算机的相关的对象的产物只属于计算机领域的技术,所以说电视,播送等均不属多媒体技术的围。 *小川,多媒体技术与应用(第二版).:人民邮电,2006年多媒体技术的特点: 1.集成性和多样性。多媒体融合了多种单一媒体聚于一身,经过对在计算机媒中以数字信息化处理和加工形成一人具有多种属性的新形式,能更好的传达和承载信息。具有媒体无法

26、具有的优势。2.数字化。多媒体以数字形式存在。 3.人机交互性。人机交互就是多媒体的一大特点。它形成了人与计算机、人与计算机及计算机间的交互,交互使人感觉身临其境、置身其中,更有利用户使用和控制信息手段。 曲建明.多媒体技术与应用教程(第二版).:清华大学,2003年实时性。画面和声音信息等能随时间而动态的变化。 1.3研究目的近年随着来计算机产业和科学技术的开展,硬件的本钱不断减少,传输瓶颈不断的突破,个人计算机性能的提高应用越来越普及。突破硬件条件的限制,对图像,视频等更高层次的支持,在计算机存储容量,存储媒体的信息容量扩大,网络飞跃式的开展,网络传输提高速度上,传输媒体显得更方便快捷,媒

27、体交互变得更容易,使得多媒体应用更加的广泛,在新闻、广告、教育、娱乐、科研领域应用,并且得到很好的利用,于是我萌生尝试制作一个基于VC+多媒体播放器,虽然网上已经有了许多功能强大,界面优美,且算法精良的播放器,但大多数软件都以商业利益为主,嵌广告,以展现多媒体的工具来传播信息,并通过广告应用多媒体技术到商业领域,也是值得学习借鉴的。我想可以通过设计和实现的过程学习和应用多媒体技术。首先播放器要具有根本的播放控制的功能,且对大多数视频文件avi , Wmv,mpeg等、音频文件 wav ,cd ,aif,mp3 等格式的支持,功能有翻开、播放、快进、快退、暂停、停顿,有播放列表以及列表管理,进度

28、条,音量控制,单曲循环,列表循环,随机播放等循环功能,以按键操控、快捷键操控和鼠标操控为主,播放器的界面以整齐、简洁明了的风格布局,开发使用的操作系统为WIN 7旗舰版,测试使用的操作系统WIN 7旗舰版,软件支持系统WIN 8/WIN 7/WIN *P,开发工具为VC+ 6.0,使用微软的微软根底类库MFC)编程,通过Windows Media Playd 的控件以及MCI接口,开发效率也是比拟高,精心去设计程序,我们可以完成一个相对不错的播放器。对多种格式的兼容以及支持,存占用率比拟低,适合配置低的或者是要求不高的用户,国大局部1.4相关技术C+语言The C+ Programming L

29、anguage 1983年,在尔实验室在C语言的根底上推出了C+,一开场曾被称为new C,之后又叫C with Class,最后得名于C语言的+操作符,表示源自C语言的自然演变。 C+是一种面向对象的编程语言,作为一种通用的编程语言,得到了广泛的应用,C+具有多种编程式:面向对象编程、过程化编程以及泛型编程。作为C语言扩展,保存了C语言的大局部语法,在它的根底上引入了对象的模型,同样设计C语言考虑的是实现对过程事物的控制,而C+这是思考如何构建对象模型。C+对C语言的扩展主要表现在1.类型检查更加严格2.增加标准模版库(STL)3.C+增添了面向对象4.C+还增添了对运算符的重载5.C+增添

30、泛型编程(Template)6.增添了异常处理。然而C语言和C+最大区别不是在于解决问题的方法,主要是解决问题的思想的方法不同。 钱能:C+程序设计教程(修订版):设计思想与实现:清华大学,2009年7月C+的语言特点:1.语言灵活,能高效的执行,具有高级语言的优点,C+可以直接访问物理地址。2.无需复杂的程序设计环境,多种平台支持C+。3.C+静态类型同C语言一样具有高效且可移植性。4.面向对象语言,且有很多优秀的程序框架如MFC、QT、OWL等。C+具体开发过程如图1.1所示图1.1 开发C+编程步骤MFC微软根底类Microsoft Foundation Classes MFC(微软根底

31、类是一种应用程序框架,随着VC+开发工具发布,由一个CWinApp类对象和MFC派生类组成,可以看成为封装了的Win32,该类库提供可复用的类库,微软提供开发人员使用,MFC作为VC+的一局部,提供C+在windows平台下的程序开发的效率和便利,MFC作为WinAPI微软提供的Windows应用程序编程接口和C+的结合,允许第三方编程语言进展在Windows操作系统下应用程序的开发,操作系统提供的API供发开人员使用,而系统部的实现,你可以不需知晓,可以说MFC是微软API在C+中的封装。其关键技术在消息映射和消息传递的消息处理机制,在SDK中没有消息映射的概念,消息响应传递回调函数,然后判

32、断消息类型,再接着处理。其中MFC中重要的几个类:1.CWnd作为大多数窗口的父类,如CButton(按钮)、CFrameWnd框架窗口、CDialog(对话框)等。2.CDialog对话框类。3.CDC全名设备文本,与GDI图形设备接口一起负责文字图像显示的工作,通过对屏幕的像素点进展绘图。4.CDocument,文档类主要负责读取和写盘,处理存和磁盘的交互的。5.CWinApp应用程序类,MFC程序的主函数,程序编译执行的入口和出口,其中InitInstance函数负责初始化窗体。 人民邮电:MFC程序开发参考大全.:人民邮电,2007年9月6 *海蕃.软件工程.:人民邮电,2002年 7

33、 MSDN中文.microsoft./china/msdn/8 郭宁.UML 级建模.:清华大学,2007年9 谭小丹,VC+编程思想.:冶金工业,2009年 10 *海藩软件工程导论第五版:清华大学,2008年11 *雅琴,夏玉杰.基于MFC的多媒体播放器的实现.信息技术, 2009年12 全子一,数字视频处理.:电子工业,2005年13 郝玉龙. C+编程技术.:清华大学,2008年14 王永乐,徐书欣.媒体播放器的制作技术.工业大学学报, 2006年 15 *炳文,VC+程序设计教程M.:清华大学,2009年Active*Active*控件或称OC*控件,作为组件嵌入软件或者网页中,特点

34、有快速开发,支持多语言的编程,在组件作为根底建立的Active*,为开发人员提供了一个开放集成的平台,在WEB网页和应用程序中应用广泛.2 需求分析2.1 播放器软件根本调查多媒体播放器的根本情况就是能对多种媒体格式的视频音频进展数字信号存储的播放。在网络上已经有了许多流行且优秀的播放器,我们可以先去其概况和功能进展了解然后制定软件需求。由腾讯公司开发制作的一款支持本地媒体文件本地播放器,能支持多种格式的视音频,第一个创立轻量级多播放的核技术,作为一款纯洁的多媒体播放器,没有任何植入广告,也没有强制安装其他软件,且支持的格式多,深受好评。界面:新版的QQ影音的界面比旧版更为多彩,但还是一如既往

35、的简洁,同时还提供换肤的功能,不是仅仅是把界面的背景做更改,而是把整体的布局和窗口的样式以及颜色风格都做了改动。功能界面有进度条、播放控制按钮、隐藏和显示播放列表。播放控制功能:播放、暂停、停顿、上一曲、下一曲、调整进度。播放列表功能:添加文件夹、添加文件、删除选中项、选中播放,翻开自动保存列表列表排序。播放循环功能:单一播放,顺序播放,无序播放,单一循环播放,以及列表循环播放。对一个本地播放器来说,暴风影音功能算是较为强大的了。但是根据时代的开展,现在主流的播放器都是据有网络播放和本地播放两种功能。有效劳器支持的播放器可以直接在播放器中搜索视频,代表暴风影音。作为本地播放器拥有播放器的功能,

36、良好的人机交互界面,已经流畅的解码同时也作为网络播放器,能在线检索资源,在线播放和缓存媒体资源的软件。功能强大,深受广阔用户的喜爱。还具有转换格式可以对当前格式进展转换,同时可以对播放文件进展片段的截取,可以把*块片段截取下来保存,还有对视频截图,对当前画面的保存成位图。2.2 软件功能分析多媒体播放器通过初步的对用户群体调查我了解到作为用户他的需求重点主要在如下几个方面:要求功能齐全,兼容性强。程序必须具有比拟迅速的响应速度。程序要求占的系统资源比拟少,同时不存在二级或二级以上的BUG。具有美观友好的人机交互的界面。还经过了对QQ影音、暴风影音等几款多媒体播放器分了解,分析制定了多媒体播放器

37、的根底需求分析如下: 1.实现播放控制功能,播放控制包括播放、暂停、停顿以及上一曲和下一曲等根本的播放器控制功能,提供用户进展操作,当播放音乐时播放界面就显示波形动画,还有添加全屏播放的功能,让用户得到更好的体验。 2.实现进度的控制,进度控制包括播放进度条、快进和快退,方便用户了解观看进度已经对播放进度的控制和改变。每次快进或快退,播放进度前进或者退后百分之一,假设是播放进度的百分之一小于五秒则每次快进或者退后5秒。3.实现音量控制,上调或下调滑条来控制音量的增加或者减少,音量的变化不影响操作系统的音量,可以通过勾选音量按钮来开关音量。4.实现播放列表以及列表的管理,设计一个按钮能让播放列表

38、显示和隐藏,在列表中显示媒体文件的信息,如文件名、文件格式、播放时长、所在硬盘的位置,能在列表里添加文件、移除选中的文件、双击播放选中的文件、清空列表、保存列表、还有调整文件所在列表的位置,导入列表和导出列表。5.实现支持多种格式音频MP3、WMA等、视频格式AVI、WMV等的翻开。6.实现菜单栏,将所以控制功能都对应实现在菜单栏中,设置快捷键的绑定,以方便用户使用对应的功能和操作,有利于建立良好的人机交互的界面。7.界面简洁整齐,让用户一目了然。8.实现播放循环模式,循环模式包括单一播放,顺序播放,无序播放,单一循环播放,以及列表循环播放。9.实现程序托盘,让程序可以化为最小化图标在后台运行

39、,在播放音乐时,可以给用户更好的享受。10.定时关闭功能,该功能主要面向音频方面的需求设计的作为音频播放器时,或许睡觉看书时可以听歌,为用户设计计关机和关闭程序的功能。11.截图功能,此功能面向视频方面的需求,对于用户在观看影片时遇到的精彩画面可以及时的截取下来保存。12.提供用户换肤的功能,用户可以自定义局部界面,让其自己可以根据自己的喜好制定界面风格。具体功能用例图见图2.1所示。图2.1 多媒体播放器用例图2.3 软件运行环境操作系统:Windows 2000/Windows *P/Windows Vista/Windows 7 2.4业务流程分析首先开场程序,先是翻开一个文件,有两种翻

40、开方式,一、从列表里添加文件或者导入列表翻开,二、直接翻开文件,如果文件是符合兼容的类型,然后开场播放,否则视为翻开失败,播放过程中有一些的供用户使用的操作,列表翻开可以使用列表的循环模式,用户可以对列表进展一系列的操作。最后是退出,用户使用完毕完毕程序。详解见图2.2所示.图2.2 业务流程图2.5数据流程分析根据播放控制模块的数据流程分析,首先获取媒体文件的信息,通过WMP的解码器进展媒体文件的数据解码,解码成数据信息流,其中包括了声音信息流和图片信息流,声音数据流通过系统进展声音合成,声卡承受到数据流处理并输出。图像数据流通过图像编码,再进展显示控制的选项,显卡获取数据流,处理并输出。关

41、于系统的数据流图见图2.3 和图2.4所示.图2.3 多媒体播放器系统顶层图图2.4 多媒体播放器系统0层图播放列表模块过翻开文件添加到播放列表中或者是通过列表添加功能添加文件,列表中以表格的形式分别文件名,文件的格式,文件播放的时长,文件路径。一目了然的显示媒体相关信息。基于时间戳的播放过程中详解见图2.5仅仅对早到的或晚到的数据块进展等待或快速处理,往往是不够的 如果想要更加主动并且有效地调节播放性能,就需要引入反应机制,也就是通过比照音视频的时间戳将当前数据流的播放状态反应给上层的源 如果音频流滞后,就即时通知音频解码器加快音频流输出,但是如果滞后太多,则直接将当前数据丢弃,直接跳到下一

42、帧;如果视频流滞后,就通知音频解码器减慢音频输出速度等待视频流,如滞后太多也直接进展跳帧 数据流首先通过别离器分解为视频数据流和音频数据流,然后经过对应的解码器,同时由本地系统时钟来进展时间戳控制;获得准确显示或回放时间以后进展时间戳比拟;假设同步则直接输出,不同步则进展音频跳帧或等待,直到同步后输出。图2.5 视频音频同步数据流程2.6 可行性分析开发工具 :Visual Studio 2013和VC+ 6.0开发语言:C+采用的是 Visual C+是 Windows 操作系统上常见的 C+开发工具,是Microsoft 公司推出的目前使用极为广泛的基于 Windows 平台的 C+的可视

43、化的开发环境。Visual C+ 6.0 编译器负责将 C+源代码编译成汇编文件,转变为中间文件,然后使用连接器将相关的中间文件连接起来,生成可执行的二进制文件。 Visual C+6.0 不仅是一个 C+编译器,而且是一个基于 Windows 操作系统的可视化集成开发环境integrated development environment,IDE。Visual C+6.0许多组件组成,包括编辑器、调试器以及程序向导 AppWizard、类向导 Class Wizard等开发工具。这些组件通过一个名为 Developer Studio 的组件集成为和谐的开发环境。使用VC+ 6.0 编译工具的

44、MFC完成对多媒体播放器的制作,在过去,计算机程序的目标是短小使得运行速度快的代码,当今计算机的性能更好,价格更群众,程序开发主要的经费从以前以硬件为主转到了以程序维护、开发为主,所以当今程序设计的第一要务、目标是以可移植性,以维护性还有可读性,做出一个播放器的途径具有多种方式,但是因为主观的原因开发语言和开发环境的限制,只能在这个根底上分析其他能够达成目的的方法,根据查阅资料,目前根据需求能实现的有:用MFC里面提供的Active*控件,在选择Windows Media Player组件,使用WMP组件提供的类,对类的使用和操作来完成对多媒体播放器的设计以及实现,可以快速的完成一个功能强大,

45、且兼容性和界面友好的多媒体播放器,在实际的工程的改方案会减少大量的本钱,有较好的开发效率。使用系统自带多媒体接口MCI(多媒体应用编程接口),能在比组件更高的层次上控制媒体设备,操作较为繁琐,却能完成各种功能。综上所述两个条件分析,从开发效率上看的话,Active*控件的相对更高一些,可以在组件提供的类对象上进展对多媒体播放器的各种功能的。且对Active*的可读性更好一些,在组件限制的方面我们采用MCI编程,使用MCI强大的对系统多媒体接口的操控,从而开发出一个完善的播放程序。3 系统总体设计3.1 概要设计播放器系系统的设计:翻开播放器,播放器程序首先进展对话框信息的初始化,初始化的过程中

46、初始化播放列表的信息,然后进展播放、暂停等等的播放控制,修改播放器列表,记得当前播放状态信息,程序完毕。根据流程图3.1所示播放系统流程图图3.1播放流程图程序的应用初始化信息有窗口的类型,系统函数的,对话框的框架,文档类等,对程序的各模块进展初始化,以及播放器界面的初始化,然后让程序运行加载。加载列表之前所保存的文件信息,显示预留提供操作,之后可以执行相关播放停顿等控制操作,也可以把程序最小化托盘,在后台运行,需要时调出来使用,程序完毕前可以进展播放器配置和播放信息的保存,以供下次翻开程序加载使用。根据功能划分为六大模块,详情见图3.2所示.图3.2 系统功能构造图翻开media playe

47、r,media players先进展初始化,在翻开文件后进展播放列表的加载,接下来可以进展列表播放,列表数据的导入导出,列表的条目的排序和选项的上下挪动顺序,选中的选项移除和清空表格功能,见表下3.1所示。表3.1 播放列表模块功能设计播放列表模块播放双击选中项来进展播放。列表的导入/导出导入或导出列表信息到二进制文本。选中项的上/下移动鼠标拖动或按键帮助移动改变选中项位置。清空列表或移除选中项点击按键完成清空或选中再点击功能按键。播放模式模块有五种选择模式,当前只能存在一种模式五选一,菜单栏中的播放模式按键互相排除的单项选则。还有有一个全屏播放模式。见下表3.2所示。表3.2 播放模式模块功

48、能设计播放模式模块单个播放和循环播放当前文件播放,或者连续的循环播放改文件。顺序播放和循环播放按顺序播放当前列表里的文件,播放完就停顿。循环当前播放。随机播放在当前中随机的选择下个播放的文件。全屏全屏播放播放控制模块包括对播放状态的控制以及播放进度的控制。见表3.3所示。表3.3 播放控制模块功能设计播放控制模块播放状态控制包括暂停,播放,停顿的播放状态进展选择,单击相应按键实现播放状态的切换,在没有翻开文件和播放列表为空的情况下,按键点击无效。通过上一个以及下一个进展列表中文件上下的切换,当前文件假设是在列表中的最后一个文件,下一个时则切到列表最上方的文件。播放进度控制包括快进,进度条,快退

49、。单击快进前进总进度的百分之一,快退则是倒退总进度的百分之一。进度条不仅仅用来显示当前的进度概况,通过拖动改变进度。下面是音量控制模块。见表3.4所示。表3.4 音量控制模块功能设计音量控制模块音量的增减,静音设置有开启和关闭总音量的开关,关闭就是静音,通过改变进度条调整增加或者减少音量大小。媒体文件模块。见表3.5所示。表3.5 文件模块功能设计文件模块文件翻开并且播放媒体文件,对于无法兼容的文件不给供翻开功能。最后一个模块是方案关闭模块,主要是设置定时然后完成相应的关闭操作。主要适用于播放音乐文件的时候。详细见表3.6 。表3.6 定时关闭定时关闭设置定时可以设置定时,设置规格最大为一天,

50、最小为一分钟。定时操作定时时间到了之后执行的操作,关机或者关闭程序。倒计时显示和后台显示倒计时,开启之后可以后台,也可以停顿定时方案。3.2 界面设计翻开VC+ 6.0 New Poject MFC AppWizard E*E 界面选择对话框模式,然后在对主对话框右键选择右键菜单中Insert Active* Controls,向下翻找到Windows Media Player的组件对该组件右键属性对组件属性进展修改,ID设置为IDC_OC*1,在常规一栏下的控件布局选项中,把布局设置成None,这样播放插件就只提供显示功能而没有其他的功能。我们把功能按钮先布局好图3.3 主界面所示,对应播放

51、控制使用编组框圈起来十字排列分成上一个,暂停,播放,停顿,下一个。播放模式使用下拉列表选择播放的模式,音量设置单项选择按钮和滑动条,通过勾选单项选择键来开启或者关闭音量,通过滚动滑动条调节音量大小。播放进度用法滑动条和静态文本来实现,左边的文本是当前的播放时间,右边的文本是该媒体文件的最大时长,中间放有滑动条,根据时间的推移,滑条跟着向右滑动,直到媒体文件播放完毕,滑条也划到底部。在滑条右下方做了一个快进和快退的旋转按钮,按左边的箭头的功能是快退,每次快退总进度的百分分一,按右边的箭头的功能是快进,每次按动前进总进度的百分之一,同时拖动进度条也有调节播放进度的功能。右边一整块是用列表控件做的播

52、放列表,把风格里的视图设置为报告,在列表下面添加5个管理列表的按钮,翻开,添加,移除,清空,退出。图3.3 播放器主界面整体来看这个播放器界面已经比拟完善了,就差把对应的功能实现了。所以我们所设计的界面根本如一下列图3.4所展示的那样子,以简洁为主要风格,功能按钮排布整齐,虽然于其他优秀的播放器的界面相比差之甚远,但是在MFC的界面算较好者。图3.4 添加菜单栏后的播放器主界面4 详细设计4.1 功能模块详细设计翻开播放器后,播放器先初始化,然后翻开文件,翻开的文件参加了播放列表,播放列表显示了媒体文件的相关信息,然后进展播放,导入和导出文件列表和一些对应的列表管理的操作,清理和移动列表中文件

53、,之后可以选择列表播放的模式,模式主要有五种,也可以进展播放状态的控制,调整播放进度,改变音量的大小,切换当前播放的容等,具体见图4.1所示。图4.1 系统顺序流程图根据模块的划分,按文件、播放控制、播放列表、播放模式、音量的模块顺序逐步完成功能。在此之前先做一个菜单栏,在Resource view资源视图对当前资源文件右键插入Menu菜单栏,对对话框右键属性绑定IDR_MENU,或者是CMyMediaPlayerDlg的初始化函数中添加对菜单栏创立按钮如下表4.1所示。表4.1 Menu按键信息表按键ID名称热键快捷键媒体文件(&F)ID_FILE_OPEN翻开(&O)tCtrl+OID_E

54、*IT退出(&W)tCtrl+W播放控制(&C)ID_MENU_PLAY播放(&P)tCtrl+F1ID_MENU_PAUSE暂停(&A)tCtrl+F2ID_MENU_STOP停顿(&T)tCtrl+F3ID_MENU_LAST上一个tCtrl+Alt+ID_MENU_NE*T下一个tCtrl+Alt+列表管理(&L)ID_MENU_ADD添加(&A)ID_MENU_DELETE删除(&D)ID_MENU_CLEARN清空(&C)播放模式(&M)ID_MENU_SINGLE单个播放(&S)tAlt+F1ID_MENU_ORDER顺序播放(&O)tAlt+F2ID_MENU_LOOP循环播放(

55、&L)tAlt+F3ID_MENU_RANDOM随机播放(&R)tAlt+F4ID_MENU_SLELOOP单一循环(&E)tAlt+F5关于(&H)ID_MENU_ABOUTAbout My Media Player完成图4.2 的设置后,需要在资源视图里右键插入一个Accelerator,在里面添加对应菜单栏按键的ID和快捷键信息进展绑定。图4.2 IDR_ACCELERATOR最后一步是对按键做消息映射,详细如图4.3的显示的样子在CMyMediaPlayer的BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间的代码行中添加我们形式如ON_MAND(ID_FI

56、LE_OPEN,OnOpen)第一个是按键ID第二个为相应的功能函数,这个是翻开文件的消息响应。具体图4.3 菜单栏按键消息映射因为菜单栏各按键所对应的功能函数此时还并未实现,所以注释起来,完成后的菜单栏图4.4 所示。图4.4 IDR_MENU菜单栏再运行看下主界面,在标题栏的正下方出现了菜单.4.1.1 文件模块设计表4.2 文件模块控件ID类型对应函数主要的作用IDC_OPENButtonvoid CMyMediaPlayerDlg:OnOpen()翻开文件,参加列表等见表4.2POSITION pos;UINT flag = LVIS_SELECTED|LVIS_FOCUSED;pos

57、 = m_list.GetFirstSelectedItemPosition(); int iInde*Num = m_list.GetNe*tSelectedItem(pos)获取当前的列表中已经存在的文件数目,下面会使用到。char szFileFilter= All File(*.*)|*.*| 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 F

58、ile(*.mmm)|*.mmm|Mid File(*.mid;*,rmi)|*.mid;*.rmi| MPEG File(*.mpeg)|*.mpeg|;CFileDialog filedlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);非模态显示文件翻开的框,设置显示的类型。if(IDOK = filedlg.DoModal() CString PathName = filedlg.GetPathName();for(int i=0;im_iListNum;i+)CString PathNameCMP;PathNameCMP=m_list.G

59、etItemTe*t(i,3);if(0 = PathName.pareNoCase(PathNameCMP)m_list.SetItemState(i, flag, flag); PathName=m_list.GetItemTe*t(i,3); m_schedule.SetRange(0,m_time);m_player.SetUrl(PathName);return;主要是查询当前翻开的文件是否已经被翻开且存在播放列表里了,如果有则直接从列表里播放,跳过翻开环节。m_list.SetFocus();m_media = static_cast(m_player.newMedia(PathN

60、ame);m_playlist.appendItem(m_media); m_list.InsertItem(m_iListNum,m_media.GetName();m_list.SetItemTe*t(m_iListNum,1,m_media.getItemInfo(FileType);m_list.SetItemTe*t(m_iListNum,2,m_media.GetDurationString(); m_list.SetItemTe*t(m_iListNum,3,PathName); m_time = _ttol(m_media.getItemInfo(Duration); m_pl

温馨提示

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

评论

0/150

提交评论