摘要:本文研究了一种基于嵌入式Linux操作系统的MediaPlayer播放器。应用GTK+图形开发工具完成播放界面的模块化设计,借助视频解码器来提高对数字视频进行压缩、解压缩的程序或则设备进行处理来实现对媒体格式和传输合同的可拓展能力,来实现播放系统的所有功能。通过嵌入式技术在播放器设计中的研究结果表明,嵌入式技术具有良好的可移植性和可拓展性。
关键词:嵌入式;播放器;GTK+
背景意义
在诸多多媒体网路播放器中红旗 linux,因为嵌入式系统的使用,linux系统上多媒体技术应用要求有了更大的展现linux 安装,为了研发一种基于linux的具有丰富的传输合同格式和多种相应的嵌入式的媒体播放器,使其适应何种传输合同和媒体格式以及正式出现的媒体格式和传输合同。
1.序言
在多媒体网路播放器中,系统中有许多多媒体组件,都是不可缺乏的组成部份linux安装视频播放器,伴随着嵌入式系统广泛应用,致使linux系统上多媒体技术应用要求有了急剧增强。因而,研发一种基于linux的具有丰富的传输合同可拓展性高的格式的播放器,使其适应各类传输合同和媒体格式linux安装视频播放器,早已成为现今的主流研制趋势。
2.嵌入式平台搭建
2.1研究对象及需求
以嵌入式Linux系统媒体播放器开发为对象,按照用户的具体应用需求,首先应选择相应的嵌入式处理器以及设备来搭建硬件平台,之后选择适当的嵌入式操作系统,基于此操作系统进行相应的用户需求开发,最后是整个系统测试,此系统开发流程图.
2.2开发环境
构建和安装交叉开发环境一般是开发嵌入式软件首要做的事情。在嵌入式系统中,因为硬件能力有限,不可能在嵌入式系统上安装编译器、连接器,这样就出现了交叉编译器。编译器可以生成在与编译器本身所在的计算机和操作系统(平台)相同环境下运行的目标代码,编译器也可以生成拿来在其它平台上运行的目标代码,这些编译器就称作交叉编译器。除此之外还须要其他工具:相关的二补码工具、针对目标平台的C头文件,针对目标平台的C函数库、网络文件系统及其配置。
3.系统结构设计
3.1嵌入式媒体播放器的基本步骤:
嵌入式操作系统的播放器的设计既要满足设计发展的系统需求,所以就要做到以下几点要求:第一是支持嵌入式Linux操作系统,要具有友好的用户图形界面,操作快捷、方便;第二是播放器基本结构是按照分层设计的原理,促使各个模块功能层次上结构分明,条理清晰;第三是提供更多的解码器编译插口,这样可以快捷的添加解码合同的扩充功能,对更便捷的调节解码格式。
3.2嵌入式媒体播放器的基本构架
嵌入式Linux系统是通过使用C语言进行开发的;强悍的用户界面是由GTK+来提供的;而解码工作是采用FFMpeg开源解码库来完成,其功能强悍,并支持多种音视频编解码标准;音视频的输出是借助SDL来完成的,但是可以减免对框架的依赖,保证可移植性的良好。
4.用户图形界面设计
图形用户界面(GraphicalUserInterface,GUI)是指采用图形形式显示的计算机操作环境用户插口,主要完成用户和播放系统的交互。对于GTK+总体而言,其是一个可移植性强、稳定性好并且使用多平台的用户图形界面支持系统,在开发过程中可以保持桌面系统与嵌入式系统中相关界面功能处理模块的统一设计与开发。
GTK+库提供丰富的控件供编程使用,应用开发系统功能界面作为主控制界面进行相应的系统功能调用,如可使用窗口配合功能按键或菜单完成主控制界面,按照相应控件的插口函数来搭建控件、设置属性、创建好讯号联接器并调用显示函数gdk_show_all()显示主体窗口,在调用函数gtk_main()步入主体函数进行循环,当调用到函数gtk_main_quit()退出循环体,程序运行结束,最后界面手动生成处理结构。
对媒体播放器进行模块界定:window、control和PlayList。对任意的一个操作响应都有相应响应函数,即控制了对MPlayer的全部操作。当window框架中的键盘被点击时,controll类中的相应操作才会被调用。而Playlist类是对播放文件的操作,比如更新文件、下载文件、查找文件等操作。
5.音视频解码模块设计
音视频解码模块主要包括音视频分离器、解码器和数据的解码选择器等部份。网路上存在各色各样的数字化音频、视频、图像,倘若依照原数据进行传输,这么网路传输的数据量是很大的。本播放器采用的解码库支持好多解码编制。其对应的操作解码函数都被安放到一个数组中,其中表头操作编码储存静态变量数组中,将须要应用解码器解码插口函数,把一个新AVCodec结构将安放到这个添加数组中。
6.媒体播放器系统控制设计和实现
6.1媒体播放器的系统控制结构设计
系统控制模块首先通过用户图形界面模块为用户提供一个播放器的控制插口,之后负责协调管理用户图形界面、音视频解码模块等模块的协同工作。播放器在演放过程中会接触到集中状态的转换,其中有播放、后退、快进、暂停、停止等操作,通过系统的控制模块对这种操作进行协同调度,实现播放状态的转换。
6.2媒体播放器控制实现
系统控制模块是媒体播放器核心模块,它控制播放器所有功能。在用户界面上进行点击按钮可以通过系统控制模块的命令实现后台播放器控制,假如主窗口的按键被点击之后,Controll类函数会对相应的action()函数所调用,相应的操作都会被action函数命令来执行,但是调用系统控制系统中发送命令函数。诸如当按下stop按键时,Controll类函数的actionStop()函数被调用进行相应的处理,该函数又将调用操作系统中的quit()函数,“quit”操作命令会被发送给后台来进行管理,最后播放器将会停止当前工作。
7.推论
7.1本文设计的嵌入式Linux媒体播放器通用控制系统兼具了播放器的通用功能。
7.2将媒体编码技相关技术和嵌入式Linux有机的融合在一起,通过媒体播放器的多种功能测试表明,能支持常用的传输合同和多种的媒体格式文件,满足了设计尺寸说明书的需求。
7.3编程软件是基于嵌入式Linux操作系统的,因好多开发能源都是开源的,有利于更好地创建和开发好用的操作系统。(作者单位:南方民族学院)