APP下载

基于嵌入式媒体播放器的设计与开发

2014-09-24王栋财梁隆恺韩改宁王凡王炀

软件工程 2014年6期
关键词:嵌入式

王栋财+梁隆恺+韩改宁+王凡+王炀

摘 要:在嵌入式系统中,多媒体的应用变得越来越广泛,因此,开发一款功能齐全、便于跨平台使用的媒体播放器得非常迫切。本文以嵌入式ARM9开发平台为基础,利用开源Linux系统和跨平台Qt开发工具。在音频开发中采用Qt提供的Phonon多媒体框架,让应用程序更易于开发了;在视频开发中利用MPlayer作为其后端程序,加快了对媒体的处理速度。该播发器是以一个集音频,视频播放于一体的一款多媒体影音娱乐软件。该软件可以移植在汽车、飞机以及个人手持设备上使用。

关键词:嵌入式;媒体播放器;ARM9;Linux;Qt

中图分类号:TP311 文献标识码:A

The Research and Development of Media Player Based on Embedded System

WANG Dongcai,LIANG Longkai,HAN Gaining,WANG Fan,WANG Yang

(Information Engineering Department Xianyang Normal Universty,Xianyang 712000,China)

Abstract:In embedded systems,the application of multimedia is becoming more and more widely,therefore,developing a complete function,easy to use cross-platform media player is very urgent.In this paper,based on embedded ARM9 development platform,using open source Linux system and Qt cross-platform development tools.In audio development program,using Phonon multimedia framework,in order to make applications easier to develop,and using MPlayer,in the video development,to accelerate the processing speed of the media.This is a collection of audio,video play in the integration of a multimedia entertainment software.The software can be transplanted in cars,planes,handheld devices,and personal to use.

Keywords:embedded;media player;ARM9;Linux;Qt

1 引言(Introduction)

随着计算机技术、媒体编码技术和嵌入式技术的不断发展,用户对媒体娱乐终端需求的不断提高,嵌入式设备的不断功能强大和逐渐成熟的市场,嵌入式软件的开发与设计越来越受到专业技术人员的重视。随着MP4、数字网络电视、3G、4G通讯等相关技术的成熟,许多嵌入式产品中都包含媒体播放器,在未来几年内都将会得到快速发展。因此,基于嵌入式媒体播放器的开发具有一定的实用价值。

2 系统设计(System design)

本设计基于ARM9的S3C2410处理器为核心,采用LCD显示技术及触摸屏技术,利用Qt作为GUI来提供强大的用户界面,实现嵌入式媒体播放器的设计与开发。

2.1 软硬件平台

根据对嵌入式视频播放的分析,为了实现图像显示和音频系统的功能,硬件选择ARM9处理器,LCD显示屏及常用的接口电路。

嵌入式音视频系统开发,基于嵌入式Linux系统,利用Qt/Embedded用户界面,调用Qt/Embedded提供的类库进行开发,该软件功能包括音视频文件的打开、删除、显示等信息,并提供播放列表和播放控制窗口等。另外,利用帧缓冲数据进行输出,取消对硬件架构的依赖,保证系统的可移植性。该媒体播放器属于嵌入式系统上层应用程序开发,占用Linux用户空间区域,为应用程序移植奠定基础,结构框图如图1所示。

图1 嵌入式软硬件系统结构

Fig.1 Embedded hardware and software system structure

2.2 音频接口模块设计

该模块主要利用Qt提供的Phonon多媒体框架,Phonon多媒体库是由KDE的开发人员建立的,其让多媒体应用程序更易于编写。Phonon有两个窗口部件,通用多媒体API的前端和API提供实际多媒体服务的后端[1]。对于使用该模块开发项目来说,必须在.pro文件加上QT+=phonon才能正常使用该Phonon库。

Phonon模块不支持对媒体流中的数据进行操作,但它能够提供一种间接的方法来操作音频流,即效果处理器。这些处理器属于Phonon::Effect类,它们能被加载到源和汇点之间的路径上,在此之间传输数据,可用的效果依赖于Phonon的后端,通过onon::BackendCapabilities::availableAudioEffects()函数获得,效果大致包括放大,立体全景图中的媒体流定位,均衡补偿和重采样。

创建一个新的Phonon::Effect实例,假设取得Phonon::createPath()方法返回Phonon::Path指针,下来就可以使用它调用Phonon::Path::insertEffect(),并把刚刚创建的Phonon::Effect实例传给它。数据的传递通过汇点节点,它是数据最终传递的物理设备,比如声卡、耳机或视频设备,由Phonon::AudioOutput媒体节点或者Phonon::VideoPlayer以及类似媒体节点的Phonon::VideoWidget窗口部件来表示,如图2所示。endprint

图2 媒体物理流结构

Fig.2 Media flow physical structure

2.3 视频接口模块设计

本模块使用利用一个开源的视频播放器MPlayer作为其后端程序[2]。MPlayer具有良好的移植性,可以移植到许多非X86平台上,MPlayer软件包中含有针对ARM架构的优化代码,这些代码利用ARM的特性加快了对媒体的处理速度[3]。

在liunx系统下,利用Qt做一个应用界面,包括:播放、停止、快进、快退、上/下一曲等功能模块;并通过交叉编译器编译应用程序,然后移植到ARM平台上。具体操作如下:使用popen()来打开Mplayer播放文件;利用process->write(“pause”)实现会暂停功能;最后利用connect()函数连接信号与槽函数,实现视频模块设计。

3 嵌入式媒体播放器系统实现( Embedded media

player system)

对于嵌入式开发,最终都要将做好的应用程序下载到开发板,然后再开发板上运行应用程序,这样就实现了整个开发的流程。

(1)开发板环境配置

以博创科技UP-TECH 2410经典平台为基础,移植LINUX 2.6.24系统具体过程如下:移植LINUX操作系统需要移植四个文件vivi、kernek、root和fs,这四个文件分别是:

Vivi—linux操作系统启动的bootloader;

ZImage—linux操作系统内核;

root.cramfs—根文件系统;

yaffs.tar.bz2—应用程序压缩包;

具体移植操作可见文献[4,5]。

(2)在上位机上编译好可执行文件,通过Qmake和make工具,本系统最终编译的程序为project。

(3)通过NFS服务或者U盘将生成的文件移植到开发板上,当然,开发板上的环境已经搭建好了,里面有所需要的库文件。NFS服务这种方式比较慢,而用U盘的方式很快的。

(4)查看开发板上环境变量的设置,环境变量设置非常重要,如果这个设置不正确,则应用程序不能再开发板上运行。通过命令:Vi/etc/profile

(5)运行该程序:./ project -qws

运行界面如图3和图4所示。

图3 视频模块 图4 音频模块

Fig.3 Video module Fig.4 Audio module

4 结论(Conclusion)

本设计以嵌入式Linux为操作系统,基于ARM9的平台开发,利用Qt进行图形界面设计,再通过相关环境配置及LCD和触摸屏的驱动开发设计,使得开发应用程序运行在ARM9开发板。该系统开发为嵌入式系统应用开发提供一定的思路,而且应用程序移植性好,可广泛应用各类嵌入式音视频系统中。

参考文献(References)

[1] 王建民,张宏壮.基于Qt的嵌入式媒体播放器的设计与实现

[J].微计算机信息,2009,(4):8-9.

[2] Kim J,et al.Efficient Metadata Management for Flash File

Systems.11th IEEE International Symposium on Object

Oriented Real- Time Distributed Computing,2008:535-540.

[3] 任亚飞,唐涛.基于嵌入式Linux的列控系统人机界面的实现

[J].铁路计算机应用,2005,(4):23-26.

[4] 陈云鹤,徐晶.基于QT/Embedded的媒体播放器的设计与实

现[J].微型电脑应用,2006,8(22):33-34;52.

[5] 马勇,等.嵌入式多媒体播放器的系统设计与实现[J].杭州电

子科技大学学报,2006,2(26):60-63.

作者简介:

王栋财(1990-),男,学士.研究领域:计算机应用.

梁隆恺(1991-),男,学士,研究领域:计算机应用.

韩改宁(1977-),女,硕士,讲师.研究领域:嵌入式系统应用,

智能机器人.

王 凡(1989-),男,学士.研究领域:软件开发.

王 炀(1990-),男,学士.研究领域:计算机应用.endprint

图2 媒体物理流结构

Fig.2 Media flow physical structure

2.3 视频接口模块设计

本模块使用利用一个开源的视频播放器MPlayer作为其后端程序[2]。MPlayer具有良好的移植性,可以移植到许多非X86平台上,MPlayer软件包中含有针对ARM架构的优化代码,这些代码利用ARM的特性加快了对媒体的处理速度[3]。

在liunx系统下,利用Qt做一个应用界面,包括:播放、停止、快进、快退、上/下一曲等功能模块;并通过交叉编译器编译应用程序,然后移植到ARM平台上。具体操作如下:使用popen()来打开Mplayer播放文件;利用process->write(“pause”)实现会暂停功能;最后利用connect()函数连接信号与槽函数,实现视频模块设计。

3 嵌入式媒体播放器系统实现( Embedded media

player system)

对于嵌入式开发,最终都要将做好的应用程序下载到开发板,然后再开发板上运行应用程序,这样就实现了整个开发的流程。

(1)开发板环境配置

以博创科技UP-TECH 2410经典平台为基础,移植LINUX 2.6.24系统具体过程如下:移植LINUX操作系统需要移植四个文件vivi、kernek、root和fs,这四个文件分别是:

Vivi—linux操作系统启动的bootloader;

ZImage—linux操作系统内核;

root.cramfs—根文件系统;

yaffs.tar.bz2—应用程序压缩包;

具体移植操作可见文献[4,5]。

(2)在上位机上编译好可执行文件,通过Qmake和make工具,本系统最终编译的程序为project。

(3)通过NFS服务或者U盘将生成的文件移植到开发板上,当然,开发板上的环境已经搭建好了,里面有所需要的库文件。NFS服务这种方式比较慢,而用U盘的方式很快的。

(4)查看开发板上环境变量的设置,环境变量设置非常重要,如果这个设置不正确,则应用程序不能再开发板上运行。通过命令:Vi/etc/profile

(5)运行该程序:./ project -qws

运行界面如图3和图4所示。

图3 视频模块 图4 音频模块

Fig.3 Video module Fig.4 Audio module

4 结论(Conclusion)

本设计以嵌入式Linux为操作系统,基于ARM9的平台开发,利用Qt进行图形界面设计,再通过相关环境配置及LCD和触摸屏的驱动开发设计,使得开发应用程序运行在ARM9开发板。该系统开发为嵌入式系统应用开发提供一定的思路,而且应用程序移植性好,可广泛应用各类嵌入式音视频系统中。

参考文献(References)

[1] 王建民,张宏壮.基于Qt的嵌入式媒体播放器的设计与实现

[J].微计算机信息,2009,(4):8-9.

[2] Kim J,et al.Efficient Metadata Management for Flash File

Systems.11th IEEE International Symposium on Object

Oriented Real- Time Distributed Computing,2008:535-540.

[3] 任亚飞,唐涛.基于嵌入式Linux的列控系统人机界面的实现

[J].铁路计算机应用,2005,(4):23-26.

[4] 陈云鹤,徐晶.基于QT/Embedded的媒体播放器的设计与实

现[J].微型电脑应用,2006,8(22):33-34;52.

[5] 马勇,等.嵌入式多媒体播放器的系统设计与实现[J].杭州电

子科技大学学报,2006,2(26):60-63.

作者简介:

王栋财(1990-),男,学士.研究领域:计算机应用.

梁隆恺(1991-),男,学士,研究领域:计算机应用.

韩改宁(1977-),女,硕士,讲师.研究领域:嵌入式系统应用,

智能机器人.

王 凡(1989-),男,学士.研究领域:软件开发.

王 炀(1990-),男,学士.研究领域:计算机应用.endprint

图2 媒体物理流结构

Fig.2 Media flow physical structure

2.3 视频接口模块设计

本模块使用利用一个开源的视频播放器MPlayer作为其后端程序[2]。MPlayer具有良好的移植性,可以移植到许多非X86平台上,MPlayer软件包中含有针对ARM架构的优化代码,这些代码利用ARM的特性加快了对媒体的处理速度[3]。

在liunx系统下,利用Qt做一个应用界面,包括:播放、停止、快进、快退、上/下一曲等功能模块;并通过交叉编译器编译应用程序,然后移植到ARM平台上。具体操作如下:使用popen()来打开Mplayer播放文件;利用process->write(“pause”)实现会暂停功能;最后利用connect()函数连接信号与槽函数,实现视频模块设计。

3 嵌入式媒体播放器系统实现( Embedded media

player system)

对于嵌入式开发,最终都要将做好的应用程序下载到开发板,然后再开发板上运行应用程序,这样就实现了整个开发的流程。

(1)开发板环境配置

以博创科技UP-TECH 2410经典平台为基础,移植LINUX 2.6.24系统具体过程如下:移植LINUX操作系统需要移植四个文件vivi、kernek、root和fs,这四个文件分别是:

Vivi—linux操作系统启动的bootloader;

ZImage—linux操作系统内核;

root.cramfs—根文件系统;

yaffs.tar.bz2—应用程序压缩包;

具体移植操作可见文献[4,5]。

(2)在上位机上编译好可执行文件,通过Qmake和make工具,本系统最终编译的程序为project。

(3)通过NFS服务或者U盘将生成的文件移植到开发板上,当然,开发板上的环境已经搭建好了,里面有所需要的库文件。NFS服务这种方式比较慢,而用U盘的方式很快的。

(4)查看开发板上环境变量的设置,环境变量设置非常重要,如果这个设置不正确,则应用程序不能再开发板上运行。通过命令:Vi/etc/profile

(5)运行该程序:./ project -qws

运行界面如图3和图4所示。

图3 视频模块 图4 音频模块

Fig.3 Video module Fig.4 Audio module

4 结论(Conclusion)

本设计以嵌入式Linux为操作系统,基于ARM9的平台开发,利用Qt进行图形界面设计,再通过相关环境配置及LCD和触摸屏的驱动开发设计,使得开发应用程序运行在ARM9开发板。该系统开发为嵌入式系统应用开发提供一定的思路,而且应用程序移植性好,可广泛应用各类嵌入式音视频系统中。

参考文献(References)

[1] 王建民,张宏壮.基于Qt的嵌入式媒体播放器的设计与实现

[J].微计算机信息,2009,(4):8-9.

[2] Kim J,et al.Efficient Metadata Management for Flash File

Systems.11th IEEE International Symposium on Object

Oriented Real- Time Distributed Computing,2008:535-540.

[3] 任亚飞,唐涛.基于嵌入式Linux的列控系统人机界面的实现

[J].铁路计算机应用,2005,(4):23-26.

[4] 陈云鹤,徐晶.基于QT/Embedded的媒体播放器的设计与实

现[J].微型电脑应用,2006,8(22):33-34;52.

[5] 马勇,等.嵌入式多媒体播放器的系统设计与实现[J].杭州电

子科技大学学报,2006,2(26):60-63.

作者简介:

王栋财(1990-),男,学士.研究领域:计算机应用.

梁隆恺(1991-),男,学士,研究领域:计算机应用.

韩改宁(1977-),女,硕士,讲师.研究领域:嵌入式系统应用,

智能机器人.

王 凡(1989-),男,学士.研究领域:软件开发.

王 炀(1990-),男,学士.研究领域:计算机应用.endprint

猜你喜欢

嵌入式
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式系统通信技术的应用
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器