Phonon是一项新的KDE技术,它为多媒体程序播放音频或视频时提供了一套应用程序接口(API)。这套接口被设计成Qt函数的风格,这样KDE开发者们使用它时就不会觉得很陌生了。(如果您对Phonon的API感兴趣的话,请看看这些在线文档,这些文档可能还是最近更新的,不过不能保证)。
首先要指出的是Phonon不是一个新的音乐系统服务器,它不会与xine,GStreamer,ESD,aRts等 构成竞争关系。相反,由于这些多媒体程序接口常常会不断变动,Phonon以这些其它多媒体技术为后端,提供了一套不变的API。这样就方便了,比如当 GStreamer的API改变了,只要Phonon做相应的调整就可以了,其它使用Phonon的KDE程序都不会受到影响。
Phonon的功能来源于开发者们所谓的“引擎”,每一种引擎支持一种后端。目前开发中的引擎有四种:xine,NMM,GStreamer以及avKode(aKode的继承者)。可以肯定的是aRts光荣退休了,针对它的引擎是不会被开发的了。不过aRts还会在其它领域继续存在的。KDE 4.0的目标是实现一个‘保证可用’的引擎,外加一些可选用的引擎。
已被建议开发的引擎还有MPlayer,DirectShow(在Windows平台上的),和QuickTime(在Mac OS X平台上的)。这些额外的引擎的开发工作还没开始,因为Phonon的核心开发者们更关心的是确保目前开发的这个API功能完备。如果Phonon的开发 者在当前这个API还很垃圾的情况下,就去忙于其它引擎的编写工作,那整个项目不乱套才怪呢(如果您想要出力编写一个引擎的话,请到 irc.freenode.org的#phonon露个脸吧)。
当用户或程序选用了某个引擎之后,Phonon就会使用这个已选中的引擎来确定各个后端所支持的文件格式和解码器,然后自动允许KDE程序播放多媒体文 件。目前的KDE 3系列中,用户不得不手动在各个程序(如Kaffeine,Amarok,Juk等)中更改引擎,而不是通过KDE来选用引擎。
一旦Phonon选定了引擎,它就会使程序配合该引擎进行标准的多媒体运转。这里的标准的多媒体运转包括媒体播放器中常用操作,如播放,停止,暂停,寻找 等。Phonon也支持更高级的功能,如定义两个音轨之间跳转的方式等,这样不同的程序就可以共享这项功能而不用每次都去重新实现它。当然,一些程序想要 在跳转时能有更多的控制,自己设计也没什么不可以的。
目前各个引擎中完成进度都好的是xine,我在我的电脑上已经装上去并可以工作了。我也尝试过编译NMM(出了名的难编译、难安装)和GStreamer 引擎,可惜没有成功,另外那个avKode默认就是‘停用’。我本来还想拿几张Juk或Noatun采用Phonon播放音频的截图出来贴一下,但它们与 KDE3系列版本中看起来也没什么两样(有些界面还更丑一点!)。等它们漂亮点的时候,我就在后续文章中把它们贴出来。
Matthias Kretz提供了一个较短的视频文件,说的是在看电影时打开您的扬声器,验证设备的切换。Phonon可以使您的原音频设备在切换后停止工作,从而您可以听到声音突从耳机中消失而在音箱中响起。
Matthias也提供了下面这张使用Phonon设置模块选择输出设备的截图。这还在改进中,所以看起来还很粗糙。
很难用截图来反映Phonon的工作情况(音频框架的截图实在难搞),但我可以描述下使用Phonon之后灵巧的一面:网络透明化。KDE使用 KIOSlaves来访问网络上的文件,这轻松的好像这些文件在自己的电脑上一样。多媒体程序如JuK或Amarok也能够在自己的收藏中非常透明地共享 网络音频文件,开发者在实现这个功能时还不必去考虑后端引擎是否明白如何与ioslaves互操作这个问题。这项功能在KDE4中已经部分地实现了,已可 通过音频缩略图进行可视化操作了。很多人都可以使用任何KIO协议,包括sftp://和fish://这两个KDE强人们非常喜欢的协议进行文件共享。在我的电脑上自行编译的fish://KIOslave还很不稳定,不过据#phonon IRC上的开发者宣称,这个功能的将很快结束编写并投入使用,届时它的稳定性就没问题了。
正在开发中的Phonon将成为KDE程序的一项支柱性技术,它会使开发者的工作更轻松,并可避免多媒体后端的变动对各应用程序带来繁杂工作以及不稳定 性,更使得KDE程序对其它平台的支持变得轻而易举。这就意味着那些开发者们可以在他们程序的其它部分花更多的时间,KDE多媒体程序也将会变得比现在的 更出色。(插句话,比如QQ的协议如果可以稳定一点,云帆的eva 0.5,0.6甚至1.0恐怕早就发布了)
一些小消息:Amarok的首席开发者Mark Kretschmann在本周正式开始了对Amarok 2.0的开发,而且他对Phonon对Amarok2.0能起到的作用很感兴趣。Amarok开发小组还是与他们在1.4系列版本中做的那样,还在开发自己的引擎。不过,就Phonon目前的开发状态来说,Phonon还是可以通过调整来满足Amarok的需要的。
Phonon开发者们的老大Matthias Kretz正在寻找有人可以为Phonon维护他们的网站,如果您想在非编程方面帮助KDE的话,不妨考虑一下。
时间:2007-04-18 08:31
来源:
作者:zltjiangshi
原文链接