基于MiniGUI的嵌入式媒体播放器的设计与实现

发布者:和谐相处最新更新时间:2014-03-06 来源: eefocus关键字:MiniGUI  媒体播放器  程序界面 手机看文章 扫描二维码
随时随地手机看文章

随着嵌入式系统的不断发展,处理器性能的不断提升,存储系统容量的不断扩大,各种多媒体应用程序被移植到嵌入式系统中,多媒体组件成为其不可或缺的重要组成部分。本文在比较如今流行的几种嵌入式图形系统的基础上,提出了基于MiniGUI的嵌入式媒体播放器的设计与实现方法。

1 引言

随着嵌入式系统的不断发展,处理器性能的不断提升,存储系统容量的不断扩大,各种多媒体应用程序被移植到嵌入式系统中,多媒体组件成为其不可或缺的重要组成部分。嵌入式多媒体播放器的开发是当前 IT产业的热点之一 ,呈现了巨大的市场需求。与些同时,播放器功能复杂化和普及化对产品的交互界面提出了更高的要求。现在许多高端手机和PDA 产品上已经有了多媒体播放器,可是和PC 机上的播放器相比现有的这些播放器的功能都有待进一步增强。

将现代窗口和图形技术带入到嵌入式设备的 MiniGUI,是一个非常适合于实时嵌入式设备的高效、可靠、可定制、小巧灵活的跨操作系统的图形用户界面支持系统。它采用类Win32的API接口,是一个多窗口GUI支持系统。本文首先比较各种嵌入式图形系统,然后提出基于MiniGUI的嵌入式媒体播放器的设计与实现方法。

2 各种嵌入式图形系统之比较

目前,流行的面向嵌入式系统的图形系统有MicoroWindows/NanoX、Qt/Embedded、MiniGUI、DirectFB、PicoGUI以及GTK /FB等。它们中的大多数遵循LGPL条款发布,而MicoroWindows/NanoX遵循的是MGPL,Qt/Embedded采用QGPL条款发布。

MicroWindows/NanoX能够在没有任何操作系统或其他图形系统的支持下运行,它能对裸显示设备进行直接操作。这样,MicroWindows就显得十分小巧,便于移植到各种硬件和软件系统上。然而MicroWindows/NanoX的免费版本开发进展慢,而且缺乏全面专业的技术支持。

Qt/Embedded功能强大,但是,由于它是基于C 类库的,所以和其他GUI相比系统消耗资源较大,一般应用于手持式高端信息产品。

GTK /FB与Qt/Embedded类似,跳过X层直接与FrameBuffer沟通,也具有Qt/Embedded的几项优点,但发展速度缓慢。

DirectFB是专注于Linux FrameBuffer加速的一个图形库,并试图建立一个兼容GTK的嵌入式GUI系统。

PicoGUI是一种新型的小巧的嵌入式图形系统。同X Windows系统一样具有一个弹性的客户服务端架构。PicoGUI将字体,位图,窗口小部件,以及其他应用程序需要的东西都直接建立在服务器上,与X Windows相比,虽然灵活性有所降低,但速度显著提升、体积大大缩小。

MiniGUI为实时嵌入式操作系统提供了非常完善的图形及用户界面支持。MiniGUI本身的可移植性设计,使得不论在哪个硬件平台,哪种操作系统上运行,MiniGUI均能为上层应用程序提供一致的应用程序编程接口(API)。MiniGUI小巧、灵活且对中文的支持性最好。

3 设计与实现

3.1播放器总体结构

本文中的播放器采用MiniGUI作为底层图形库,用于生成用户界面以及读写FrameBuffer。

  图1 基于MiniGUI的嵌入式系统总体架构

播放器软件总体结构如图2所示,它主要由三部分组成,分别是图形用户界面模块、系统管理主控模块和音/视频解码器。三部分功能设计如下面所述:

图形用户界面模块通过事件/消息机制和系统管理主控模块交互。

音/视频解码器模块可以看作是系统管理主控模块的插件(plug-in),从系统管理主控模块获得编码的音/视频数据并对其解码后发送己解码的音/视频数据给系统管理主控模块。

系统管理主控模块则负责网络数据的接收和解析、图形用户界面模块和音/视频解码器模块的工作协调和音/视频数据的输出。这个模块是播放器软件中非常重要的一个模块。 [page]

  图2 播放器应用程序结构图

3.2 用户图形界面设计

MiniGUI提供了丰富的GUI元素,如常见的控件类、对话框与消息框以及菜单等,此外,MiniGUI支持界面皮肤。因此,利用MiniGUI可以非常方便地设计出漂亮的用户图形界面。

播放器的人机交互界面主要包括播放控制与文件列表管理两大部分。播放控制用来实现对所选择的媒体文件作播放/暂停、停止及进度控制等;文件列表管理则用来实现向播放列表添加、删除媒体文件以及对列表中文件排序等功能。

3.3 主要函数及具体实现

⑴ 播放控制事件回调函数

static int main_event_cb (HWND hwnd, skin_item_t* item, int event, void* data)

{ …

if (event==SIE_BUTTON_CLICKED) {

switch (item->id) {

case SIID_PLAY:



case SIID_PAUSE:



case SIID_STOP:



case SIID_CLOSE:



}

}

else if (event==SIE_SLIDER_CHANGED && item->id!=SIID_VOLUME) {



}

return 1;

}

⑵ 列表事件处理函数

void playlist_handle_event(PEvent *event, void *data)

{



switch(event->type) {

case ButtonPress:



case ButtonRelease:



case KeyPress:

if(!playlist)

return;

mykeyevent = event->xkey;

LockDisplay(gGui->display);

len=LookupString(&mykeyevent, kbuf, sizeof(kbuf), &mykey, NULL);

UnlockDisplay(gGui->display);


switch (mykey) {

case K_Down:

case K_Next:

browser_step_up(playlist->playlist, NULL);

break;


case K_Up:

case K_Prior:

browser_step_down(playlist->playlist, NULL);

break;

default:

gui_handle_event(event, data);

break;

}

break;

case MappingNotify:

LockDisplay(gGui->display);

RefreshKeyboardMapping((MappingEvent *)event);

UnlockDisplay(gGui->display);

break;

}

} [page]


⑶ 主函数

int MiniGUIMain(int argc, const char* argv[])

{




PlayerHandle=PlayerNew();



free(buffer);

PlayerGetInfo(PlayerHandle, &fi);



InitCreateInfo(&CreateInfo);

hMainWnd=CreateMainWindow(&CreateInfo);

if (hMainWnd==HWND_INVALID)

return -1;





while( GetMessage(&Msg, hMainWnd) )

{

TranslateMessage(&Msg);

DispatchMessage(&Msg);



}


PlayerClose(PlayerHandle);



MainWindowThreadCleanup(hMainWnd);

return 0;

}


4 结束语

随着嵌入式系统硬件性能的不断提升,用户对应用程序界面的友好性和功能的完备性提出了更高的要求。本文介绍的基于MiniGUI的嵌入式媒体播放器具有设计简单,占用系统资源少等特点,可作为开发基于嵌入式图形界面系统的应用软件的参考。

参考文献

[1] 魏永明.M in iGUI用户手册v1.6 [M].北京:北京飞漫软件技术有限公司,2006.

[2] 魏永明.M in iGUI编程指南v1.6 [M].北京:北京飞漫软件技术有限公司,2006.

[3] 杨小军.基于嵌入式Linux系统界面的研究[[J].现代电子技术,2004, 27 (IS):89-91.

[4] BarrM. C/C 嵌入式系统编程[M].十志宏译.北京:中国电力出版社,2001.
关键字:MiniGUI  媒体播放器  程序界面 引用地址:基于MiniGUI的嵌入式媒体播放器的设计与实现

上一篇:飞思卡尔推智能穿戴设备芯片解决方案
下一篇:IPTV技术的几个关键问题

推荐阅读最新更新时间:2024-05-02 23:00

最实用的PLC和人机界面的模板程序讲解
最简单、最实用的和人机界面的“万能模板程序”。分享的这个程序框架虽然没有那么高深,但对于一般的设备,按照这个思路来做程序足够。 首先分享PLC的框架程序: 1.设置PLC相关参数 你要设置好PLC相关参数,参数等。例如:I/O分配、软元件设置、设置。 2.程序内容分配 程序内容分配因人而异,大致分为两类: ①.按照程序结构来分配:主程序、报警程序、复位程序、数据相关程序等。 ②.按照设备动作类型分配:上料程序、下料程序、铆接程序、程序等。 3.初始化程序 初始化程序是对PLC程序进行数据、逻辑步骤等的初始化。初始化常见两种方式,一、是P
[机器人]
基于Android操作系统实现车载人机界面应用程序的设计
提出了利用Google的Android作为车载虚拟仪表人机界面的软件开发平台。在Android系统框架上实现虚拟仪表的人机界面,阐述了如何对Android现有系统框架进行裁剪和调整,使系统更加符合车载虚拟仪表人机界面的要求,利用Android提供的组件设计虚拟仪表人机界面的各个功能逻辑模块,使得模块设计更加合理.模块之间的耦合性更小。设计了基于REAL210车载仪表人机界面,结果表明,基于Android的虚拟仪表人机界面功能更加丰富、操作更加友好、易于升级和维护,能较好地满足用户的需求。 车载虚拟仪表人机界面,是驾驶员获取汽车工况数据的主要界面,便于驾驶员实时全面地掌握汽车工作状态,有效地与汽车进行人机交互,对保障汽车安全稳定
[嵌入式]
基于Android操作系统实现车载人机<font color='red'>界面</font>应用<font color='red'>程序</font>的设计
基于MiniGUI的GPS自动定位系统设计
引言     基于GPS的卫星定位技术,可以将移动目标的动态位置(包括经度和纬度)、时间、状态等信息通过无线通信链路实时传送到监控中心,从而在电子地图上显示出移动终端运动的轨迹,并对终端的位置、速度、运动方向、报警信息等用户感兴趣的参数进行监控和查询。本文提出一种基于MiniGUI的嵌入式自动定位系统,具有占用资源少、高性能、高可靠性及可配置的特点,并可以成功移植到多种硬件和操作系统平台上。 1 系统总体设计     本系统采用ARM7内核的LPC2103处理器,软件上采用占用硬件资源较少、实时性能和可移植性能优良的μC/OS-II操作系统,图形界面采用MiniGUI。 1.1 系统实现功能     系统实现主要功能包括:实时
[嵌入式]
基于Symbian平台的流媒体播放器设计与实现
  1 引言   继语音通话、短信服务、数据通信之后,音乐无线下载及实时播放正在成为全球手机运营商提供的新兴服务之一,引发广泛的关注。与传统的基于个人电脑的音乐播放器相比,手机音乐播放器的优势在于其下载和播放方式的方便快捷,可以给用户带来轻松舒适的使用体验。以手机音乐播放器为媒介,运营商可以依靠其自身对移动通信网络服务的强大控制力,为顾客提供更好的服务。由于移动通信服务的灵活性和多样性,使其在增值业务方面也有较强的扩展性。   Symbian S60 平台的MulTImedia Framework( MMF) API 可以为上层应用程序提供多媒体服务,为用户创建和分发丰富多彩的音乐应用。作为一个多媒体处理单元的插件集,MMF
[手机便携]
基于Symbian平台的流<font color='red'>媒体播放器</font>设计与实现
基于MiniGUI/mDolphin/mPeer技术的网络电视方案
  网络电视(IPTV)也叫交互式网络电视,是利用互联网的基础设施,以电视机作为主要终端设备,集互联网、多媒体、通信等多种技术于一体,通过互联网络协议(IP)向家庭用户提供包括数字电视在内的多种交互式数字媒体服务的崭新技术。现在市场上基于各种嵌入式操作系统的网络电视软件解决方案有很多,本文重点描述在嵌入式Linux平台上,基于MiniGUI/mDolphin/mPeer技术构造出的网络电视方案。   无论是何种嵌入式设备,只要涉及到用户交互,那么GUI就是该设备软件部分的基础,网络电视也不例外。在嵌入式Linux平台上可供选择的GUI系统也有很多,如X Window、Qt/Embedded和MiniGUI等,而MiniGUI的性
[家用电子]
基于<font color='red'>MiniGUI</font>/mDolphin/mPeer技术的网络电视方案
基于ARM9的媒体播放器的设计方案
1 引言 计算机多媒体技术和网络技术飞速发展使得基于流媒体的多媒体应用也被运用在多种领域,特别是网络可视电话、远程监控、视频点播领域。伴随着计算机多媒体压缩技术的成熟和网络传输技术的发展,开发实时可靠、多功能、数字化、操作简单的基于计算机网络通讯技术和多媒体应用的网络化流媒体播放器已成为计算机、通信、消费电子产品领域(3C 产业-Computer、Communication、Consumer Electronics)技术发展的主要方向之一。 2 系统硬件设计 本文使用TQ2440 开发板作为硬件平台。 S3C2440AL 是控制核心,负责控制所有辅助设备。存储器采用SDRAM 和Flash 两种类型,能满足系统运行和调试的
[单片机]
基于ARM9的<font color='red'>媒体播放器</font>的设计方案
基于ARM-Linux的高清数字机顶盒软件系统设计
    数字电视特别是数字高清晰度电视的诞生应该说是电视界的一场深刻变革 。电视系统已进入数字化的进程,数字机顶盒是该系统的关键部件,特别是其软件系统的设计和开发。但无论是模拟彩电还是数字处理电视,都不具备对全数字电视信号进行解码的功能,所以一种能够接收数字电视信号并能够解码输出用于显示的中间设备——机顶盒,就显得很有必要了 。     目前国内机顶盒以有线标清为主,欧洲以卫星和地面的机顶盒为主,美国以高清地面机顶盒产品为主 。随着技术的发展,机顶盒已不只单纯接收数字电视节目,还要接收大量的数据,而且用户和电视机之间还要实现互动 。目前国内还没有一种成熟的交互式应用,所谓的交互式应用基本上都还停留在本地交互的基础上 。本文研究
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved