车载多媒体的实现

2022-09-10

多媒体实现的目的是为驾驶员在车内提供一个休闲的空间。驾驶员在休息的时候, 可以打开多媒体, 观看电影或欣赏音乐。

然而, 模拟音、视频的视频源逐渐减少, 其价格通常较高, 存储较麻烦, 而且模拟播放器的机械部分在震动的汽车环境通常影响寿命以及VCD等光盘播放系统的播放效果。随着互联网络的发展, 人们对信息的需求和迫切程度也越来越高。人们开始希望汽车能够提供更为丰富的信息服务。正如宝马汽车公司的高层认识所说, 将来的汽车平台应该是IT的平台, Gartner的分析师也认为, 互联网络的触角应该延伸到汽车上面。

采用先进的嵌入式计算机系统, 接入Internet网络, 提供基本的信息网络和支持当前多样化的数字音、视频媒体格式是本文的重点。

1 设计原则

多媒体的功能是基于Linux下开源代码MPlayer实现的。通过MPlayer提供的控制接口, 以最简易操作为原则, 完成该系统上多媒体的基本控制。界面简单友好, 操作符合大众习惯, 方便简单呈现给用户的是两个播放列表框, 分别为音频和视频。音频可以由用户直接点击要选择的项, 然后顺序播放, 也可按下随机播放按扭进行随机播放。当音频在播放时, 也可以直接选择视频。这样, 音频的播放被停止, 转而开始播放视频。由于视频比较长, 可能需要跳过某部分情节, 那么可以按下快进按扭, 视频将会前进10分钟, 在按下后退按扭, 视频将会后退5分种。这样控制的目的是能比较准确的定位到视频的位置。设计同样要实现D V D和V C D的播放。不论是D V D还是V C D, 当把影碟插入光驱后, 只要按下DVD按扭就能播放影碟。多媒体文件要能很方便的被更新。只需要移动存储设备插入接口, 系统将自动从设备中搜索音频和视频文件。同样, 也可以直接双击删除按扭将系统中的多媒体文件删除。

2 关键技术

2.1 移动设备搜索的实现

设置一个定时器, 每隔一定时间就激活线程。此线程首先检测系统/dev/目录下是否存在sda1文件, 因为在Linux系统下, 当有移动设备接入USB口后, 系统会记下该设备所占的接口名。如果没有检测到sda1文件, 线程结束。一旦检测到了sda1文件并且每有设备挂载, 则立刻将设备挂载到系统上, 并且标记已经有设备挂载了。这样做的目的是防止在接下来的拷贝操作过程中, 由于定时器timeout, 而又激活线程, 从而使系统不断的挂载设备。接着, 线程搜索设备中所有的文件。当搜索到音频或视频文件后, 就立即拷贝至系统中, 并且记录下已拷贝的文件数目。文件拷贝是通过系统调用实现的。在整个设备中的文件都搜索完毕后, 并确定拷贝的文件数目大于零, 向文件载入线程发送一个信号, 让其重新载入播放列表。最后, 用一个系统调用将设备卸载。

2.2 文件载入的实现

首先定义两个容器, 一个保存音频文件, 一个保存视频文件。同时, 定义两个列表框, 用以分别显示音频文件和视频文件。在系统启动的时候, 文件载入线程就开始启动。线程到特定的目录下 (这个目录专门用来保存多媒体文件) , 进行音频和视频文件的载入。根据多媒体文件的格式 (亦即文件的后缀名) 不同, 区分音频和视频文件。最后将音频文件绝对路径添加到音频文件容器, 将视频文件绝对路径添加到视频文件容器中。这样就能将媒体库中文件显示在列表框中。如果多媒体库中的文件有更新, 该线程将收到来自其他线程发送的更新信号, 这时, 线程将重新载入文件并显示在列表框。

2.3 视频播放的窗口

由于开源软件Mplayer在播放视频时会弹出视频窗口, 然尔在嵌入式车载系统上就很变得很难操作了。因此, 必须把视频窗口嵌入到界面里。通过重定向视频流, 先获得预先定义的窗口的句柄, 然后将Mplayer的视频流重定向到中, 而该窗口是以界面为父窗口的子窗口, 这样就顺利地把问题解决了。如图1所示。

2.4 多媒体播放的测试

(1) 按下播放按扭, 列表中的第一首歌曲开始播放。

(2) 单击歌曲列表框中的任意一首歌曲, 歌曲开始播放。

(3) 按下随机播放按扭, 立刻播放随机的一首歌曲。

(4) 按下暂停按扭, 歌曲暂停, 按下播放按扭, 歌曲继续播放。

(5) 按下停止按扭, 歌曲停止播放。

(6) 单击视频列表框中的视频, 视频开始全屏播放。

(7) 单击一下屏幕, 在出现的操作菜单上单击快进按扭, 视频快进10分钟。

(8) 单击停止按扭, 回到初始界面。

测试结果表明, 音频的播放良好, 每个按扭的功能都各司其职, 无差错发生。视频画面的质量随音频文件的质量不同而不同。

摘要:车载多媒体系统不仅支持多种媒体格式, 而且操作简单, 适合车载用户使用, 采用的播放器是功能强大的Mplayer, 对DVD和VCD的播放效果特别好。多媒体文件的更新也非常简单。

关键词:车载多媒体,移动设备,文件载入,视频播放

参考文献

[1] Arthur Griffith, 胡恩华.GCC技术参考大全[M].清华大学出版社, 2004.

[2] Syd Logan, 战晓苏, 王宁.Gtk+程序设计[M].清华大学出版社, 2002.

[3] John Goerzen, 魏永明, 耿岳, 等.Linux Programming Bible, 2000.

[4] Michael Beck, Harald Bohme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Claus Schroter Dirk Verworner, 张瑜, 杨继萍.Linux内核编程指南[M].2004.

[5] Neil Matthew, Richard Stones.Linux程序设计[M].机械工业出版社, 2002.

[6] 蔡自兴, 徐光佑.人工智能[M].清华大学车版社, 2003, 9.

上一篇:大学生校园文化设计市场前景研究与分析下一篇:浅析人工湿地系统污水处理技术