基于QT多媒体播放器设计(共28页).doc
《基于QT多媒体播放器设计(共28页).doc》由会员分享,可在线阅读,更多相关《基于QT多媒体播放器设计(共28页).doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上本科毕业论文(设计)( 2013 届 ) 题 目: 多媒体播放器的设计 学 院: 机电与信息工程学院 专 业: 电子信息工程 学生姓名: yu 学号: 指导教师: xxx 职称(学位): 工程师 合作导师: xxx 职称(学位): 讲师 完成时间: 2013 年 月 日 成 绩: 黄山学院教务处制专心-专注-专业学位论文原创性声明兹呈交的学位论文,是本人在指导老师指导下独立完成的研究成果。本人在论文写作中参考的其他个人或集体的研究成果,均在文中以明确方式标明。本人依法享有和承担由此论文而产生的权利和责任。声明人(签名):年 月 日目 录摘要1英文摘要21 引言32 Q
2、t设计简介3 2.1 研究背景3 2.2 设计的目的和意义3 2.3 论文的主要内容和设计目标43 多媒体播放器的设计4 3.1 软件架构设计4 3.2 播放器实现总体设计5 3.2.1 音视频播放系统流程5 3.2.2 音视频实现原理6 3.3 播放器设计中基本函数接口74 多媒体播放器的实现8 4.1 播放器界面设计8 4.1.1 界面UI设计8 4.1.2 界面外观设计9 4.2 播放器功能设计10 4.2.1 基本功能设计10 4.2.2 播放器播放文件选择11 4.3 音视频播放设计测试及其效果12总结13参考文献13附录14多媒体播放器的设计机电与信息学院 电子信息工程 xxx()
3、指导老师:xxx(工程师)摘要:目前常见的多媒体播放器多种多样,各具特色。但都存在一些缺点,例如使用的内容空间较大、播放文件格式支持少和界面不友好等等。QT因其功能的强大和移植性强的有点逐渐广泛使用在GUI系统开发中。因此在Linux系统嵌入式环境下基于QT的多媒体播放器设计具有实用价值。本设计是在Linux下使用QT技术进行GUI设计,利用QT creator软件编程实现一个图形界面,完成一个简单的多媒体播放器的设计。该设计基于QT集成开发环境,利用系统的函数接口来编程、具有体积小、支持的播放格式多、系统占用资源少、支持播放列表编程等功能。关键词:多媒体;播放器;嵌入式; QT;GUI设计T
4、he Design of Multimedia PlayerYu ZeQing Director:Sun GaoXin(Dept.of electrical and Information ,HuangShan university,Huangshan China ) Abstract: The common multimedia player have a variety of different features at present.But there are some disadvantages,Such as taking up a lot of resource,less supp
5、ort format and its interface bloated. But QT with its powerful functions and good portability has become a widely used GUI systems.Therefore multimedia player based on QT embedded Linux system has becoming a meaningful things. In this article,the GUI design of Linux graphical interface based on QT,
6、For example, It use the QT creator software programming a simple multimedia player. The player Mplayer command interface based on QT integrated development evvironment. This Mplayer is small, but it support much playback file formats, occupy less system resources, support for playlists and some othe
7、r functions.Key Words: Embedded ; Qt; Media Player ; multimedia; GUI design1 引言 嵌入式以及其技术是在计算机、半导体、电子产品技术和数字图像处理等技术在个领域、行业应用在具体产品开发的技术。在当今数字技术、信息技术和网络技术高速发达的时代里,嵌入式技术在各领域。各行业都得到了广泛的应用。随着嵌入式产品设备的不断更新,Linux在嵌入式中因其内核微小、设计模块化在一定程度上满足了嵌入式产品设备的要求,并慢慢获得很多开发者的赞同,特别是在电子消费类产品、汽车行业及工业控制领域、无线通讯终端、网络产品、路由器和交换机中的使
8、用。为了在不同的系统中都能发挥到作用,人们可以对其系统进行开发,尤其是在应用领域的开发和使用。在当今市场上便捷式播放器有很多,如:MP3、MP4等产品。其功能比较单调,文件播放格式支持的非常少,使用起来会有许多的不方便。为了解决市场上常见产品的一些不足,本设计就使用QT工具来实现一个多媒体播放器,在Linux环境下,此播放器不尽支持格式多样、同时还设计了友好的用户使用界面。从外观和功能上来说满足了用户的基本要求。2 Qt设计简介 2.1 研究背景 由于Linux系统内核对各种产品设备都具有支持性,因此,该系统内核能使用于路由器、机顶盒、手机、平板电脑、POS系统以及工业控制等软件信息类产品开发
9、。此次设计主要是在Linux环境下使用Qt工具实现的多媒体播放器设计。这也是本文需要先从Linux系统说起的必要所在。随着芯片使用技术的快速发展,嵌入式系统的开发的使用增多、其性能得到提高,功能也慢慢丰富起来。嵌入式系统应用领域和行业带给人们的日常生活方便,慢慢地改变了人们的生活方式,提高人们的生活质量。在工业领域,消费类电子产业,更新换代的速度进一步的加快,市场的总体需求量进一步扩大。在早期MP3随身听成功后取得巨大的市场,此后支持视频功能便捷式播放器逐渐得到消费者的青睐,成为继MP3之后的有一成功和突破。因MP3的缘故,人们一直以来将这中多媒体播放器称为MP4。新一代MP4的开发有着广阔的
10、前景和市场潜力,从而使得很多的开发商所看好并加大投入进行研发,最后把其推向市场产生价值。 随着嵌入式系统的流行和其独特的优点得到了许多开发者的喜爱。使得嵌入式系统开发在当今IT行业成为主流思想。同时在消费类电子产业快速发展的情况下,对于多媒体播放器的需求更加多样。各大开发公司都着力于开发Linux环境下的多媒体播放器。在我国,随着电子产业和IT行业的逐渐成熟。对嵌入式开发的需求量也不断的增加,对于播放器的开发需求也在不断的开发和进步。2.2 设计的目的和意义 目前,嵌入式系统是在一个快速发展的时代,激烈的竞争,这种竞争和发展在未来几年将继续发展和激烈。嵌入式系统市场和技术的发展很快,国外技术发
11、展的步伐更加成熟,市场基本形成。国内的发展速度也很快,市场有很大的潜力。在国外的一些发达国家,高水平的硬件,尤其是在嵌入式CPU的处理能力上,从原来的8位到16位再到32位,发展速度很快。掌上电脑、智能设备等新产品的涌入市场,使得产业规模进一步扩大和发展。国内的嵌入式硬件需求基本是靠进口来满足,技术相对较弱。但是,如今国内外都有自己推出的嵌入式系统,都在为自己在这个产业争取一份额而努力。而其中Linux以其公开的系统内核源代码而得到广泛的重视和使用,发展前景非常乐观。在国内,大型的嵌入式系统非常少,今后的开发重点可能转向基于Internet的各种信息和嵌入式操作系统领域,包括Internet、
12、网上交易、Iphone和平板电脑等。在这样的时代环境下,本文就实现了在嵌入式系统下基于Qt的多媒体播放器的实现,基本实现了一个便捷式的多媒体播放器的设计。 2.3 论文的主要内容和设计目标 本文就是基于Linux操作系统运用Qt开发工具来实现一个便捷式的多媒体播放器。首先运用Qt的C+ GUI编程实现此多媒体播放器的外观和外形设计,基本实现一个多媒体播放器的外形和框架。其次,在Qt工具中运用一些类、槽函数的使用来实现播放列表和播放功能、以及多格式化的支持功能。 最终目标是实现一个方便易用的便捷式多媒体播放器,我们可以利用此播放器进行一些视频、音乐的播放。同时要实现多格式的支持。由于此播放器是基
13、于Linux操作系统的,其移植性强可以在我们所需要的设备上进行相应的移植,增大了此播放器的应用功能。3 多媒体播放器的设计 3.1 软件架构设计 嵌入式多媒体播放器软件架构设计如图3-1所示。本设计主要使用C+编程来支持Linux系统环境,通过Qt作为GUI开发播放器的用户界面设计,应用层使用通过调用系统的函数接口来支持。此种设计保证了播放器在Linux环境下的可移植性和可扩展性,增大了软件的实用性。用户图形界面操作窗口使用Qt工具来开发,通过Qt提供的图形库来设计多媒体播放器的管理、应用基本窗口,主要实现打开、播放、暂停、停止功能的按键设计。同时在软件内部实现对于这些功能的支持和实现。还有对
14、用户设定的播放列表、播放文件的选择等功能的支持。而这些设计都是基于Qt作为GUI设计的,因此移植性得到了基本的保证。用户输入主要是用户选择播放文件,播放器软件对其进行读取,根据设计的功能来实现相应的响应,做出用户指定的处理。如:选择播放文件、对按钮的输入、打开、关闭等操作。也就是说在用户界面所能进行的一切操作都是属于用户输入,只要设计中设计了处理方式,播放器都会给出相应的响应。系统函数接口的调用主要是为了实现上层软件结构和下层结构之间的联系功能。在此播放器设计中,其主要是提供底层函数调用接口和解码器调用。通过这些函数接口使得可以把跟解码有关的函数集中起来,通过函数接口来调用。播放器根据播放文件
15、的不同选择不同的解码器,如果找不到所需的解码器则通过这些函数反馈信息提示用户。通过函数接口的使用使得设计的可延续性得到保证。文件解码和输出时解码器进行解码后对于音视频文件数据流的输出。在QT设计中对于内核帧缓冲区是可以直接操作的。所以可以把解码后的数据通过帧缓冲区输送到输出设备上去,完成整个设计的解码输出功能。 用户图形用户界面用户输入函数接口调用文件解码和输出帧缓冲输出设备QT图3-1 嵌入式媒体播放器软件架构 3.2 播放器实现总体设计 3.2.1 音视频播放系统流程播放器播放文件系统流程如图3-2所示:音视频文件首先从输入模块通过用户操作读入数据。通过读入数据的文件头,输入模块做一定的处
16、理,获取相应的信息,如:播放文件的编码类型、文件的长度等信息。再判断播放器是否支持播放此文件。如果可以,则函数接口调用分离器对音视频信号进行分离。音频数据流和视频数据流分别通过音频队列和视频队列进行排队等候。再通过对应的音频、视频解码器进行解码操作。再把解码后的音频信号和视频信号进行整合处理,实现同步输出到缓冲,再分别从相应模块输出。设计中,音视频数据流的读入、解码、输出都是在Qt中使用多线程的方式来实现的,即在解码的同时不断读入数据流进入缓冲区等待解码,这样使用缓冲区的功能来提高解码的效率。由于播放文件的格式不同使用的解码器不同,当输入模块读取用户指定的播放文件时。只有格式与解码器相匹配才能
17、正确打开。而在输入模块中主要完成对数据的读取,其最后还是把原始的音视频数据传到了缓存中。实际打开这些文件的是通过接口函数调用解码器进行的。用户通过界面操作选择播放文件进行打开操作指令,输入模块接收用户操作信号来得到播放文件的文件名、文件格式等基本信息。同时检查文件名以及文件格式等是否合法,播放文件是否是空档文件等。之后函数接口才开始调用启用解码器进行解码操作。通过函数接口调用初始化函数对播放器进行初始化,为文件的解码和播放做好预先准备。输出模块主要包括两部分,即音频输出部分和视频输出部分。这都是根据输出的内容来划分的。显而易见,输出为音频则通过音频模块,若为视频则经过视频模块。其功能就是为解码
18、后音视频信号的输出做服务。这两个部分再设计上也是独立分开的。虽然解码后会对其进行同步处理,但同步后输出的介质不同。音频信号通过音频输出通道再通过外部的喇叭等音频输出器输出,而视频信号则通过视频通道输出。通过函数接口调用来控制音视频的同步。保持较为理想的音视频同步播放效果。视频输入缓冲区输入模块音视频分离音频音频解码视频视频输出视频解码视频声音音频输出音视频同步图3-2 播放器系统流程3.2.2 音视频实现原理本实现原理围绕主从媒体流为中心,主媒体流为视频流,从媒体流为音频流。其中视频信号的解码速度保持不变,通过系统时钟确定实际的时间。为了能使音视频同步,必须调整音频的输出速度。通过选择一个线性
19、递增的本地系统时钟作为参考(LSCR)。作用于视频解码器和音频解码器中。然后依据各帧的值比对本地时钟的参考值。即在生成输出数据流时在每个数据库块上标记开始时间和结束时间。播放这些数据时,依据数据块上的时间来播放。 由于在播放过程中,仅仅对于早到或者晚到事务数据块做处理,这样处理存在很多的不同,是远远不够的。所以为了有效的调节控制多媒体播放器的性能,再设计中加入反馈机制,通过反馈当前播放数据的播放状态来实现反馈机制。若音频信号滞后,则反馈通知加快音频的解码速度。若为视频信号滞后则反馈通知音频信号减慢解码速度来等待视频信号的同步。若其中任何一方滞后太多则直接跳转到下一帧执行。 在分离器的分离下,数
20、据流分解为音频数据和视频数据。通过对应的解码器解码后,通过比对当前系统的系统时钟,获得准确的显示时间再进行比对。若二者同步则输出,不同步则音频信号进行等待或跳帧处理,直到处理后达到同步才会输出。 3.3 播放器设计中基本函数接口 函数接口模块是真个播放器设计中的一大重点,其中包含了解码器的调用和底层函数的调用。在应用层功能实现和底层调用中起到一个通道的作用。同时也连接上了输入和输出模块,使得数据流可以从输入到输出进行流动,保证播放信号的流动性和连续性。函数接口模块的几个重要的接口:1)检查播放文件是否可支持bool isFileSupported(const QString&filename)
21、通过判断文件的后缀名来断定播放器是否支持需要播放的文件,如果支持播放返回真,反之则返回假。可以识别的文件类型有MP3、MP4、MPG、RMVB等。如何使用新的解码器增加了文件格式的支持,只需要将新支持的文件类型名添加到函数的支持列表中。 2)播放文件的信息函数 const QString& fileInfo() 用于获得需要播放音视频文件的基本信息并将其保存在一常量字符串中,这些便于其他函数去调用和使用相关信息。与音视频相关的信息主要包括:音视频的格式、音视频的频率、播放时间、音视频通道等。 3)音频处理函数bool audioReadSamples(short* output ,int ch
22、annels,long samples,long& samplesRead,int) 音频的处理工作也是本设计中必须借用的一个函数接口,其也包括利用解码器对音频数据进行处理以及读取。函数中的参数output表示输出文件的指针,channels表示音频处理的通道数,samples表示音频采样处理中的采样数。函数的整体功能由解码器来支持和完成。 4)视频帧处理函数bool videoReadScaledFrame(unsigned char* output_rows, int, int, int in_w, int in_h,int out_w,int out_h,ColorFormat fmt,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 QT 多媒体 播放 设计 28
限制150内