黑龙江 刘爽
Grilo是一个致力于简化多媒体集成的全新项目。其使用方式非常简单常见。Grilo抽象了各个media provider间的差异,通过暴露给应用开发人员一套单一的高层次的API来屏蔽所有服务相关的细节,一套系统可以用于所有的媒体服务和设备。这显著地减少了应用程序开发端所需要的努力。应用开发人员凭借Grilo,只需编码一次便可以使用所有被Grilo支持的media provider。加上对多媒体解决方案的熟悉,高层次框架的本质,大多数程序员会感到得心应手,并能理解Grilo是如何工作的。
针对多媒体内容集成系统的功能需求,设立此系统的目的是为加强多媒体消费用户体验,真正做到操作所有多媒体服务方式一致,对所有Grilo支持的插件进行集中管理。
为了更好的体现本程序功能,编写简单的UI模块供用户操作,实现浏览、搜索、播放等功能。主前台页面采用基于GObject的GTK+图形库编写,对UI执行不同的操作来调用系统具体的功能模块。
本系统的主界面主要完成功能是显示存在当前系统中可用的upnp、file system等grilo插件,双击某插件即可对特定媒体服务进行浏览操作(递归浏览文件系统目录结构),可以按照输入的特定关键字进行搜索匹配的多媒体文件,双击列表中出现的多媒体文件可调用播放器播放媒体内容。
当控制点定位一个服务后他希望了解更多,因而他将请求描述文档。描述是一个XML文档用来描述一个设备,包括:
·制造商信息,版本,其他。
·可被设备采用的图标的URL地址。
·嵌入式设备列表。
·设备提供的服务列表。
控制点采用基于TCP的HTTP来请求描述文档。控制点执行标准的HTTPGET命令(与检索Web页面类似)。在服务器端,设备运行一个标准的HTTP服务——可以是完全的Web服务器如Apache也可以是迷你服务器。描述文档中的很多条目都是URL地址。这些条目也使用HTTP/TCP检索。
文件系统插件同样分为两个部分:搜索和浏览。
搜索过程描述:首先初始化起始搜索目录,当用户单击search按钮时,执行搜索操作。总体思路是递归扫面文件系统目录结构,首先获取初始目录下所有文件列表,对这个子文件链表进行扫面,一次取出第i个文件进行判断,如果为媒体文件则调用回调函数来返回给UI,如果是目录,则递归调用本模块。如果不是上述两种文件,则搜索工作结束。
浏览过程描述:当用户双击文件系统插件时执行浏览操作,从根目录“/”开始,当用户双击列表中某目录时,通过传递给模块相应的目录id来执行浏览操作,首先获取当前目录下所有的文件列表,扫面链表,对每个元素进行判断,如果是目录文件或者是媒体文件,则将其元数据信息封装成GrlMedia或者GrlMediaContainer,进一步调用回调函数将结果返回给UI。
通过局域网主机模拟Internet中多媒体服务器工作,意在说明Grilo框架的通用性,并不仅限于本系统中使用的前两个插件。
使用Gtk+调用GNOME开源的多媒体播放器Totem,它基于Gstreamer,Gstreamer设计原理来自 windows的 DirectShow,GStreamer作为GNOME桌面环境推荐的流媒体应用框架,采用了基于插件(plugin)和管道(pipeline)的体系结构,库中的所有的功能模块都被实现成可以插拔的组件(component),并且在需要的时候能够很方便地安装到任意一个管道上,由于所有插件都通过管道机制进行统一的数据交换,因此,很容易利用已有的各种插件“组装”出一个功能完善的多媒体应用程序。通过编写支持不同格式的插件插入到管道中,使编写一个万能的播放器成为可能。
目前,基于Grilo的多媒体集成系统还不完善,还有很多不成熟的地方。将在以下几个方面开展进一步的完善工作。
第一方面:进一步明确系统的需求分析。需求分析过程中可能存在着一些不足,将在后期系统完善中对存在的问题进行修改。
第二方面:系统界面不够美观。系统首先进行后台模块的设计和开发,对前台的显示效果没有考虑周全。将在界面布局等方面对系统进行完善,今后可能考虑替换其他可移植的图形库,clutter等。
第三方面:因为系统所采用的技术基于glib和gobject,所以充分保证了系统代码的跨平台特性,目前系统运行平台为ubuntu11.04,今后在改进UI后可以移植本系统到其他平台(Windows、Mac OSX、Android等)。
[1]肖文鹏.自由软件爱好者用GStreamer简化Linux多媒体开发,2004~6.01.P1~5.
[2]The GNOME Project, Grilo Reference Manual.P1~10.
[3]Eric Harlow著,童寿彬,童悦,等译 Developing linux Application with GTK+and GDK.1999.P66~68.
[4]王保保,陶鹏.UPnPAV架构的数字多媒体家庭网络.微电子学与计算机,2006,23(7):126~134.
[5]范新运.基于UPnP的家庭智能系统研究与实践:[硕士学位论文].西安:西北工业大学图书馆,2005.