基于DirectFB的嵌入式播放器的设计与实现
3.2 Lite和fusionsound
Video接口通过调用FFmpeg对音视频解码进行了有效的封装。通过Lite,用户与播放器实现有效交互。Lite弥补DirectFB在工具箱以及窗口管理上的不足,相比于其他的GUI,它在提供对话框和按钮的同时,资源消耗较小,适合嵌入式开发。Fusionsound是一个DirectFB的子库,它基于oss或者alsa驱动。Fusionsound将音频数据输出到了扬声器上,该函数库能够支持一些基本操作,例如WAV格式文件的播放,同时它也提供一系列的声音播放、调节播放速度、调高音量、声音缓冲区管理等接口。
3.3 播放器的流程
程序运行流程如图4所示。程序首先初始化Lite以及DirectFB库,然后初始化对话框并设置回调函数;接下来初始化一系列的按钮,例如播放、暂停、快进、声音、放大、缩小等,并设置消息触发响应函数。接着调用DirectFB接口中的video接口播放视频文件,然后会进入消息循环,来响应用户各种各样的按键消息。
4 实验结果
在本实验中,采用TI公司OMAP-L138处理器、64M的内存开发板做实验,内存占用约为5M左右。通过内核设置,将CPU的主频设置为300 MHz,播放器在运行期间CPU的占用率为70%,播放画面十分流畅。DirectFB开发的播放器如图5所示。
结语
DirectFB是一个轻量、高效的库,但是由于缺少必要的窗口系统导致其开发效率低。搭配由DirectFB开发出的Lite窗口系统,能很有效地进行基于对话框的程序开发。因为Lite和DirectFB本身占用的资源极少,所以十分适合嵌入式开发。本文提供了一套嵌入式开发播放器的新思路,通过对编解码代码的优化,搭载上轻量的图形和窗口管理系统,使其能够适用于各种中低端场合。
DirectFB Lite窗口系统 嵌入式播放器 相关文章:
- 基于DirectFB的嵌入式播放器设计(01-28)