admin 管理员组文章数量: 887021
2023年12月19日发(作者:skala)
・70・ (总666) 基于linux下电影播放器的设计与实现 2012正 文章编号:1003—5850(2012)08—0070.03 基于Linux下电影播放器的设计与实现 武子英 ,石小莉。 (1.太原大学外语师范学院,太原030012,2.武警山西总队通信站,太原030012) 摘 要:随着科技的发展,在试听享受方面,人们更加关注便携式电影播放设备的播放器质量。针对电影播放软件只能播放一 种或者几种简单的媒体格式,或者不能适用于不同平台的现状,在PC平台下,实现了一种可以播放多种媒体格式,并且可以跨平台 使用的电影播放软件。介绍了在Linux系统用图形界面工具QT来实现电影播放器的软件设计方案,提供了对目前流行的媒体格 式文件的支持,取得了较好的效果。 关键词:Linux系统,跨平台,QT,phonon类库 中图分类号:TP391 文献标识码:A Design and Implementation of Movie Player Based on Linux WU Zi—ying 。SHI Xiao—li。 (1.Foreign Language Normal College of Taiyuan University,Taiyuan 030012,China, 2.Communication Station of Army Unit f oPolice,Taiyuan 030012,China) Abstract:With the development of technology,ejoyment in the lyrics,people pay more attention to the movie playback device portable player quality.Because a large part of the period movie player software can only play one or several simple media format,or can not be applied to different platforms,this article in PC platform,can play to achieve a variety of media formats,and achieve cross—platform movie player software. This paper describes the system in the Linux graphical interface tool used to achieve the QT movie player software design solutions,providing the current popular media format support.The experiment achieved good result. Key words:Linux system,cross—platform,QT,phonon library 1 研究意义 由于多媒体格式的多样化,对电影播放器的研究 越来越深入,如何研制一种开放架构的播放器技术,使 商业操作系统不同,Linux完全是一个自由的操作系 统。Linux包含了人们希望操作系统拥有的所有功能 特性,包括真正的多任务、虚拟内存、世界上最快的 TCP/IP驱动程序、共享库和多用户支持(这意味着成 百上千的人能在同一时刻通过网络、Internet或连接 得该播放器能够支持各种媒体文件格式和传输协议, 是当前播放器的一个重要研究方向。 在计算机串行口上的终端或笔记本电脑/微机使用同 一2 软件开发平台及开发工具的选择 2.1开发平台的选择 台计算机)。 大量的高级程序设计语言已移植到Linux系统 上[1],因而它是理想的应用软件开发平台。而且,在 IAnux是UNIX操作系统的克隆,可以免费使用, 遵循GPL声明,可以自由修改和传播。与Windows等 Linux系统下开发的应用程序具有很好的可移植性。 同时,Linux还有许多独到之处_2]: * 收稿日期:2012—04—03,修回日期:2012 06—22 * *基金项目:基于标点信息和树形结构的汉语韵律结构研究(国家自然科学基金青年基金(61005053);基于博客与微博的网络 教学模式的研究(校级课题) ***武子英,女,1976年生,讲师,硕士研究生,研究方向:中文信息处理。
第25卷第8期 电脑开发与应用 ①源代码几乎全部都是开放的。 ②可以运行在许多硬件平台上。 ⑧不仅可以运行许多自由发布的应用软件,还可 以运行许多商品化的应用软件。 匝 困 匝 蔓 =二二=乜囹’ ④强大的网络功能。 2.2开发工具的选择 图l系统整体框图 Qt E。 是一个完整的C++应用程序开发框架。它 包含一个类库,和用于跨平台开发及国际化的工具。 从功能上来说,它们各自所执行的功能是完全不 同的,是互相独立的;从另一方面来看,音频视频所需 要的数据来源于输入的文件,而输出到输出设备上的 数据源又来源于音频视频解码后获得的数据,它们又 GUI工具包(或GUI库)是构造图形用户界面(程 序)所使用的一套按钮、滚动条、菜单和其他作者。 ICBC作者:ICBC象的集合。提供一个友好的用户界 面是GUI设计的一个宗旨,减少用户的负担、满足用 户的需求、界面和用户的互动交流也是在GUI设计中 必不可少的。一个出色的界面不仅能够清晰地勾画出 所依托系统的大体结构,并且能够大大减少操作的工 作量和复杂性。在UNIX系统里,有很多可供使用的 GUI库,其中之一就是Qt库——一个基于C++编 程语言的工具包。它具有以下几个优点。 ①可移植性。Qt的一个主要设计目标是使跨平台 程序开发更加直观,便捷并富有趣味性。为了实现这一 目标,Qt提取了窗口和操作系统的底层基础构造函 数,为程序员提供了有意义的一致逻辑界面。Ot API 在所有支持的平台上都是相同的,Qt工具在这些平台 上的使用方式也一致,因而Qt应用的开发和部署与 平台无关。 Qt应用程序编译自同一套源代码,可以在所有支 持的平台上进行本地化运行: a.Qt/Windows(Microsoft Windows XP,2000, NT 4,Me/98/95) b.Qt/X1 1(I inux,Solaris,HP—UX,IRIX,AIX, 及其他Unix variants) c.Qt/Mac(Mac OS X) d.Qt/Embedded(嵌入式Linux) ②易用性和健全性。 ③运行速度。 由于Qt是基于c++,速度快,易于使用,并具有 很好的可移植性。所以,当需要开发UNIX和(或)MS Windows环境下的GUI程序时,Qt是最佳选择l_4j。 3 系统的设计 播放器的整体流程是,用户通过图形界面控制,输 入要播放的文件,然后调用音频解码器,最后,将解码 后的数据通过帧缓冲输出到输出设备上去。整个过程 总的来说主要由输入、解码、输出这3个部分组成,它 们之间可以说既相互联系又相互独立。具体如图1所 示。 是相互紧密联系的。为此,可以将它们之间相互的联系 交给一个专门的模块负责,即插件接口模块。这样,一 个播放器除了界面部分之外,可以分成4个独立模块: 输入模块、输出模块、插件接口模块和解码器模块。在 这里可扩展性主要体现在插件接口模块和解码器模 块。可以将音频视频的解码程序以插件的形式封装在 解码器模块中,对不同格式的媒体文件可以使用解码 器模块中封装的对应的解码器插件。同时,为了调用方 便,可以在插件接口模块和解码器模块之间采用一套 统一的解码器封装接口。 3.1界面开发 在界面开发上,QT有QT设计师。它提供了QT 基本的可绘制窗口部件,比如:layouts布局、Buttons 按钮、Item Views、Item Widget等窗口部件。在QT设 计中,只需要通过鼠标点击拖放这些窗口部件,就能够 高效快速地实现GUI界面的设计。这样虽然给我们提 供了一些方便,但由于它是通过人的观察和感觉来摆 放窗口部件的位置,导致在实际布局上肯定有一定差 距。因此,在本程序中,在界面的开发上采用了代码和 QT设计师来共同开发,主界面上采用纯代码的编写, 子界面(设置界面)通过QT设计师来实现。 本程序的主界面的窗口部件包括:菜单栏、Button 按钮、进度条等。在界面的布局上采用了布局管理器方 式,这种方式为窗口部件提供了有感知的默认值,可以 随着窗口部件的大小变化,对子窗口部件的大小和位 置作出适当的调整。所以布局管理器方式是对设计图 形化用户界面、组织管理界面窗口部件的最好的方法。 布局管理器方式主要有4种管理器:水平布局管理器 (QHBoxI ayout),按水平的方向组织管理窗口部件; 垂直布局管理器(QVBoxI ayout),按垂直方向管理窗 口部件;网格布局管理器(QGridI ayout),按二位网格 方式组织管理窗口部件;栈布局管理器 (QStackedI ayout),按照一种类似于栈的方式组织管 理窗口部件,在某一时刻只有一种窗口部件是可见的。 在本程序中界面的设计采用了基本的水平布局管理器 (QHBoxI ayout)和垂直布局管理器
基于linux下电影播放器的设计与实现 (QVBoxLayout)[ 。 界面的详细开发过程: ①主窗口MediaPlayer继承父窗口QWidget。 class MediaPlayer:public Qwidget{…} ②设置窗口标题为MediaPlayer。 setWindowTitle(tr(”media player”)); ③添加菜单栏,在openbutton下添加子菜单。 openButton一>setlcon(style()一>standardIcon(QStyle:: SPDialogOpenButton)); ④添加背景图片: setStyleSheet( border—image:url(:/images/screen.png) ;border-width:3px ); ⑤添加进度条。 Phonon::Seekslider(this); ⑧添加控制按钮。包括rewindbutton、Play (pause)、forwarbutton、volume; rewindButton—new QPushButton(this); playButton—new QPushButton(this); forwardButton—new QPushButton(this): ⑦界面的整体布局是先采用水平布局管理器 QHBoxI ayout对打开按钮、控制按钮、声音进度条,之 后采用垂直布局管理器QVBoxI ayout对进度条已进 行布局。 QHBoxLayout*layout—new QHBoxLayout(); QVBoxLayout*vI ayout—new QVBoxLayout(this): ⑧setting界面采用QT设计师来实现,具体布局 如图2显示。 圈2设置界回 3.2具体功能的实现 3.2.1 文件打开功能 为了方便开发人员对一些特定功能的对话框进行 编程,QT提供一套标准的通用对话框,它可以限制用 户只能打开已经存在的文件,也可以允许用户输入一 个新的文件名;此外,过滤器的使用,给出只能显示符 合特殊标准的文件的限制。在这里使用两种打开文件 的方法[6]。 ①选择一个或者多个文件以及目录: MediaPlayer::setFile(const QString&fileName)(…) ②也可以输入文件名或者路径: MediaPlayer::setLocation(const QString&location) 3.2.2播放、暂停、前进后退功能 本程序是经过动态链接库的形式调用软件解码器 的。为此必须先加载动态链接库,然后当加载成功后, 才调用相应的函数。 3.2.3 改变播放画面尺寸功能的实现 在播放画面上双击鼠标,或者在open子菜单中的 full screen按钮,都可以实现全屏播放的功能。 MediaVideoWidget::setFullScreen(bool enabled){…); MediaVideoWidget:: mouseDoubleClickEvent (QMouseEvent*e){…); 3.2.4音量控制功能的实现_7] 在音量控制上,使用的是Phonon下的 Volumesilder控件,通过单击右侧的声音可以实现静 音的控制,再右边的slider控件可以完成声音大小的 控制。 volume—new Phonon::VolumeSlider(&m— AudioOutput); 4 结 论 介绍了一种在Linux平台下电影播放器的设计与 实现,全文在整体结构、软件平台方面做了详细的说明 与介绍,实现部分主要是通过Linux下的QT4对电影 播放器界面和功能来进行实现的。 上述工作完成了操作系统、编程语言的选择、环境 的搭建、总体设计、软件设计、播放器界面功能的设计 与开发,基本实现了跨平台性和可扩展性架构的设计, 对产品的跨平台性进行了相应的提高。当然,设计中的 一些缺陷在今后的工作中还有待进一步的提高。 参考文献: [1] 孙琼.嵌入式Linux应用程序开发详解EM].北京: 人民邮电出版社,2006:89—10. [2] 王子强,刘海燕,李嫒州.Linux下图形用户界面程序的 开发与实现I-J].计算机应用与软件,2005,6(3):81—83. [3] 衰 野,王宏远.一种嵌入式系统中GUI的设计[J]. 计算机与数字工程,2006,34(7):103—105. [43 郑莉,董江舟.C++语言程序设计(第4版)[M].北 京:清华大学出版社,2010:187—205. [5] 杨水清编著.ARM嵌入式Linux系统开发技术[M]. jE京:电子工业出版社,2009:111-123. I-6] 谭浩强.C++面向对象程序设计[M].北京:清华大学 出版社,2006:89一100. [7] 谢春,陶烨,瞿坦.基于嵌入式Linux系统的多 进程图形用户界面GUI系统研究[J].工业控制计算 棚.,2003,5(6):28—29.
版权声明:本文标题:基于Linux下电影播放器的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702980258h438279.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论