基于Qt的嵌入式媒体播放器系统的设计 .pdfVIP

基于Qt的嵌入式媒体播放器系统的设计 .pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

摘要:本文以无线多媒体终端项目的需求为背景,提出了一种适用于嵌入式系统的

媒体播放器架构设计方案论文给出了一种嵌入式系统中音视频同步的解决方案,

有效的提高了嵌入式媒体播放器软件的音视频同步性能,在此基础上设计并实现了

基于Linux/Qt的嵌入式媒体播放器,实现了基于Qt的嵌入式媒体播放器系统

关键词:Qt;嵌入式Linux;媒体播放器;音视频同步

1引言

随着用户要求的不断提高,越来越多的嵌入式设备使用功能强大、价格低廉的

嵌入式Linux作为操作系统并开始采用较为复杂的图形用户界面Qt以其强大的功

能、良好的可移植性逐渐成为一种被广泛使用的GUI系统正是由于嵌入式操作系

统及其相应图形用户界面的不断发展,嵌入式软件的开发显得越来越重要其中嵌

入式媒体播放器由于能够满足人们的视听享受已经逐渐成为了系统中不可或缺的重

要组成部分,在嵌入式系统上开发媒体播放器已经成为了一个技术热点,当前许多

嵌入式产品中都包含媒体播放器因此在基于Qt的嵌入式系统中实现媒体播放器

具有深刻的意义和实用价值

2嵌入式媒体播放器系统设计

2.1架构设计

嵌入式媒体播放器架构设计方案如图1所示通过使用纯C++语言开发来支持

嵌入式Linux系统,采用Qt/Embedded作为GUI来提供强大的用户界面,实现一

个开放式的插件接口来增强扩展性,利用内核帧缓冲来输出,消除对特定架构的依

赖,从而保证可移植性媒体播放器属于上层应用程序,位于Linux用户空间这

样设计的目的是为了系统移植性

图形用户界面窗口以Qt/Embedded为基础开发,通过调用Qt/Embedded提供

的类库根据需要设计可以管理多媒体文件的基本窗口,包括打开、删除、显示文件

长度、显示播放时间等窗口,以及为方便用户设定的管理播放列表、进行播放控制

的窗口,这些都是直接和用户打交道的由于采用了Qt/Embedded作为GUI,移植

性可以得到保证

文件输入主要是对用户指定的文件进行读取和解析,将获得的文件长度、播放

时间、编码格式、音视频帧率、文件标题等内容,结合MIME的处理,显示在预先

设计的窗口中

插件接口调用主要是把所有对解码器的操作整合到一个统一的开放式接口当

中,根据上一部分解析出的文件信息去查找相应的解码器插件并调用,如果没有找

到可用的解码器可以返回信息提醒用户添加相应的插件通过实现这样一个接口可

以使播放器的扩展性大大提高,因此本部分是媒体播放器的核心

文件解码和输出主要负责通过调用解码器对音视频数据流进行解码,然后利用

QT/Embedded可以直接操纵内核帧缓冲FrameBuffer的特性,将解码之后的数据

通过FrameBuffer直接送到输出设备输出,避免对DirectShow、OpenGL等特定架

构的依赖,进一步增强可移植性

图1嵌入式媒体播放器的架构

3插件接口模块和解码库模块

3.1插件接口模块设计

插件接口模块是整个播放器的核心部分,它封装了对具体解码器的操作,从而

在输入和输出模块之间搭起一座桥梁,确保数据的正常流动插件接口模块主要提

供了以下方法来控制解码器:

1)文件支持性函数boolisFileSupported(constQStringfilename);

通过检查文件的扩展名来确定待播放的文件是否被播放器支持,若是返回真,

否则返回假可识别的扩展名有asf、avi、dat、mp2、mp3、mpeg、mpg、ogg、

wav等如果添加了新的解码器插件以后可以识别新的文件格式,只需要将其扩展

名添加到此函数的支持列表中

2)获取文件信息函数constQStringfileInfo();

用于获得文件的各种信息并将结果保存在一个常量字符串中,便于其他函数调

用这些信息包括:播放时间、音频格式、音频比特率、音频通道、音频频率、视

频格式、视频比特率、视频高度、视频宽度等

3)读取音频采样函数

boolaudioReadSamples(short*outputintchannelslongsampleslong

samplesReadint);

调用解码器对音频采样数据进行读取,是音频数据处理的核心

文档评论(0)

133****9096 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档