基于FLTK的流媒体播放器界面设计与实现

2014-05-25 00:33林倩瑜
关键词:图标闹钟菜单

林倩瑜

(集美大学诚毅学院,福建厦门 361021)

基于FLTK的流媒体播放器界面设计与实现

林倩瑜

(集美大学诚毅学院,福建厦门 361021)

利用FLTK开发工具包,给出了一种流媒体播放器界面系统的设计思路及其在嵌入式系统下的实现方法;其特点是界面美观、占用资源少、运行效率高;实验证明其设计思路可行,性能优良,为其他嵌入式系统项目的界面设计提供了借鉴。

流媒体;嵌入式GUI;FLTK

随着互联网技术和3G技术的发展,家庭消费类电子的迅猛增长已经成为国民经济增长的一个重要的组成部分。嵌入式流媒体播放器由于其体积小、不依赖PC、使用方便、价格低、音乐类型丰富等特点容易为大部分家庭所接受。[1]图形用户界面又称为图形用户接口(Graphical User Interface,GUI),指采用图形显示的方式呈现给操作用户的使用界面或接口,是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人-机-环境三者作为一个系统进行总体设计。[2]这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。目前,使用GUI的领域非常多,如电脑操作平台、移动手机、PDA产品、智能家电等。嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。因此,如何有效地应用面向对象思想进行系统分析,构造出结构清晰,能满足不同目标用户的创意需求的GUI系统具有重要意义。利用FLTK工具包,开发了一个图形用户界面系统,该系统能够在不影响系统功能的前提下,为用户的不同需求提供不同的显示界面。[3]

1 Fltk开发环境的搭建

1.1 Fltk功能简介

FLTK(The Fast Light Tool Kit),如同其名字所表达的,是一种使用C++开发的GUI工具包,可以应用于Unix,Linux,MS-Windows95/98/NT/2000和MacOS操作系统平台,相对于其他的许多图形接口开发工具包,是一种轻量级的GUI开发库。但这轻量级并不代表功能的强弱,相反,FLTK在具有基本的GUI功能之外,还拥有一些特殊的功能,比如跨平台、内置OpenGL功能、速度更快,尺寸更小、协议宽松等。它兼容xforms图形库(unix/linux下的一个C语言图形库),所以可以用来开发模块化的程序,同时也可以使用面向对象开发程序,用户使用起来非常方便。另外,由于fltk使用cmake,所以可以方便的使用cmake生成makefile,然后再进行编译,使得编译库也非常方便。它具有体积很小、速度比较快,且有更好的移植性。当然,缺点也是有的,比如对于复杂的界面构件支持不够,资源支持的不足等。

FLTK产生于NeXT环境,发展于X-Window环境,所以对图形加速的支持必然是选择OpenGL。FLTK使用Fl_Gl_Window这个类将OpenGL的基本功能囊括其中,只要在Fl_Gl_Window的draw()里glbegin/glend即可,基本的设置工作FLTK全都做好了FLTK基于LGPL,对使用者的要求非常宽松,所以开发者不需要担心其项目的隐形问题。

1.2 FLTK在嵌入式系统上的移植

FLTK安装很简单,只需要下载它的源文件,解压缩到目录下,在Linux下只需要输入make,编译完成然后make install将头文件安装到/usr/include/FL目录下。库文件就在/usr/lib下,也可以自己编译之后把这些文件复制到这些目录,或者不需要复制,只在编译的时候指定路径。[4]

首先在http://www.fltk.org/上下载fltk-1.1.3.tar.gz,解压后生成fltk-1.1.3目录。在该目录下运行configure/help,参照嵌入式流媒体播放器的要求,配置FLTK。由于嵌入式流媒体播放器还有数码相框的功能,所在FLTK必须支持大部分类型的图片格式。参阅FLTK的开发文档可知,FLTK已经在Fl_RGB_Image类的子类中提供了支持JPEG(Fl_JPEG_Image)、PNG(Fl_PNG_Image)、PNM(Fl_PNM_Image)和BMP(Fl_ BMP_Image)图片的导入、缓存和绘制。所以只需要提供JPEG和PNG图形的解码库,FLTK就能将这些图片格式的文件绘制出来。

1.3 FLTK构件简介与消息处理

FLTK作为GUI开发包,包含了常用的图形用户接口需要的一些构件,如:按钮、文本显示框、进度条、菜单和时钟等等。视觉表现非常丰富,如图1所示。在FLTK中是通过Fl_Widegt::handle()虚拟函数来处理系统的消息。[5]系统的主要消息如表1所示。

图1 FLTK的基本构件

表1 系统主要消息

2 用户界面的实现

2.1 界面应用程序的体系架构

系统使用FLTK作为图形界面开发工具,主要是实现菜单显示、通过按钮选择菜单以实现系统的各个功能。根据嵌入式流媒体播放器的要求,系统界面应用程序的体系架构如图2所示。

app_main是嵌入式流媒体播放器的主应用程序;在图2中,以C开头的文件是界面程序;main.menu是界面的菜单配置文件;以.sh结尾的文件是Shell脚本程序,用于搜索USB和SD卡中的所有音乐或图片,*list.pls是用对应的Shell脚本搜索到的音乐或图片列表文件。mfav.pls和pfav.pls表示USB或者SD卡中的音乐或图片的收藏夹列表文件。

图2 界面应用程序的体系架构

2.2 系统开机主界面

系统在应用程序启动时,会从读取Config/main.menu菜单配置文件。根据菜单配置将开机主界面显示出来,图3显示了开机后进入的主界面。主界面的顶层一栏显示的是当前所在的菜单目录和系统当前的时间;界面的中央部分用于显示系统的可选菜单,通过遥控器的上下键来选择不同的菜单,选择左键可退到上一级菜单,选择右键/进入键可以进入到菜单;主界面的左下角显示的是闹钟的图标,嵌入式流媒体播放器支持两个闹钟,如果用户设置了闹钟,则相应的闹钟图标就会显示出来,图3表示系统的两个闹钟均已经设置;在右下角,两台电脑显示器的图标表示的是当前网络的连接情况,如果网络已经成功连接,图标就会显示出来,图3表示当前的网络已经连接;在右下角的日历图标表示当前的日期和星期,如图3表示当前的日期是2013年2月3日,星期二。如果要查看年份,选择进入Calendar菜单就可以。

图3 嵌入式流媒体播放器的主界面

3 小 结

FLTK对非英文字体特别是中文的支持比较差,甚至是非常差。在Windows平台下还好一点,因为在Windows平台下使用的是TextOut函数输出字符串,但是在X-Window环境下就无法正确显示中文,也不能调用输入法进行输入。从这点来说,FLTK还是只适合一些封闭软件的开发。总体来说,基于FLTK的流媒体播放器用户交互界面友好优美,对用户的输入反应迅速,能较快较好地处理用户的各项输入。再者,嵌入式流媒体播放器利用完全免费的流媒体播放软件和GUI开发工具,并以此GUI设计了系统的全部界面,降低产品的成本,为提高产品的竞争力创造了十分有利的局面。由于时间和条件的限制以及个人在美工方面的造诣尚浅,在一些需要用户输入和设置的界面中,界面友好度还存在瑕疵,产品的商业化还需要进一步的研究和改进。

[1]岑斌,肖刚,程振波,等.流媒体技术综述[J].中国有线电视,2003(2):11-13

[2]刘少耿.嵌入式流媒体系统的研究与实现[D].太原:太原理工大学,2008

[3]王丽洁.嵌入式Linux的图形界面技术研究与实现[D].北京:国防科学技术大学硕士论文,2006

[4]吴升艳,岳春生,胡冰.嵌入式Linux系统下Microwindows的应用[J].单片机与嵌入式系统应用,2003(5):231-235

[5]谢长生,龚文京,徐君明.基于Microwindows的嵌入式GUl分析及应用[J].计算机工程与科学,2005(9):59-64

Design and Implementation of Stream Media Player Interface Based on FLTK

LIN Qian-yu
(Chengyi Institute,Jimei University,Fujian Xiamen 361021,China)

This paper gives a design idea for a kind of stream media player interface and its implementing method in embedded system by using FLTK development tool package,with the characteristics of beauty,small resources consumption and high operating efficiency,and provides reference for the interface design of other embedded systems based on the experiment verification that the design idea is feasible and that the performance is fine.

stream media;imbedded-style GUI;FLTK

TP311

A

1672-058X(2014)03-0068-04

责任编辑:代小红

2013-11-28;

2013-12-28.

林倩瑜(1985-),女,福建厦门人,实验员,硕士,从事数据仓库与数据挖掘研究.

猜你喜欢
图标闹钟菜单
多彩创意闹钟
中国新年菜单
天然闹钟
小闹钟的提醒
能帮我设个闹钟不等四则
Android手机上那些好看的第三方图标包
图标
本月菜单
中国风图标设计
有意思的厕所图标