标题 | 基于嵌入式媒体播放器的设计与开发 |
范文 | 王栋财+梁隆恺+韩改宁+王凡+王炀 摘 要:在嵌入式系统中,多媒体的应用变得越来越广泛,因此,开发一款功能齐全、便于跨平台使用的媒体播放器得非常迫切。本文以嵌入式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所示。 图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-),男,学士.研究领域:计算机应用. 图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-),男,学士.研究领域:计算机应用. 图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-),男,学士.研究领域:计算机应用. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。