Board logo

标题: Linux嵌入式操作系统掌上娱乐系统 03 [打印本页]

作者: samwalton    时间: 2013-8-29 15:28     标题: Linux嵌入式操作系统掌上娱乐系统 03

3。1。1后端程序简介
    本系统使用Mplayer作为其后端程序。MPlayer被评为Linux下的最佳媒体播放工具,不需要任何系统解码器就可以播放包括视频、音频、流媒体、广播、电视等各种媒体。
    Mplayer另一个重要特点在于其开源性。
    Realplayer,WindowsMediaPlayer,QuickTime等许多播放软件都是性能优秀的播放软件,但由于它们都不开放源代码,给移植带来了麻烦。同时MPlayer还具有良好的移植性,可以移植到许多非X86平台上,MPlayer软件包中含有针对ARM架构的优化代码,这些代码利用arm的特性加快了对媒体的处理速度。
    基于以上多个原因,本系统选择了MPlayer作为娱乐终端的播放软件。本系统通过移植Mplayer来实现对视频的播放功能。Mplayer编、解码模块,是系统的音、视频处理中心,在mplayer的编解码库中,包含的大量的音、视频格式处理程序,经过编译优化过的mplayer可以完成对大多数音、视频格式高效的编解码工作。
    3。1。2前端程序的设计与播放器的实现
    主界面窗口有一个显示屏和一些控制按钮,包括播放、暂停、下一首、上一首、音量调整以及播放进度条。文件操作窗口可以使用户选择要播放的文件。
    播放列表用来播放用户加载的多媒体文件。
    MPlayer默认全屏播放,但在GUI中一般都是指定区域或者控制来播放。这样显得美观,MPlayer支持在指定的X窗口播放的功能。用-wid参数告诉窗口ID即可。例如:mplayertest。mpg-wid0x00029#0x0029是XID,而QT的控件都是从QWidget继承下来,因此它本身也有wid,这样只要用QWidget::winID()取出WID,即可实现在指定窗口播放视频的功能。
    本模块是建立一个QtGUI程序。然后用一个label控件来播放视屏,用一个进度条显示播放的进度,用按键显播放,暂停,上一首,下一首,停止和添加资源文件。然后用一个Qprocess在后台执行MPlayer,并把label的WID传给它。然后把MPlayer的输入输出重定向,把原本从标准输入接收命令变成从GUI的接收命令。
    3。1。3播放功能设计
    播放器实现的软件流程图如图4所示:

    图4播放器软件流程图。
    通过定义一个QProcess对象调用已编译好的Mplayer。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0