kde 是一个基于x serve的图形库,ubentu就是用kde的这个库写成的,kde又是由Qt写成的,Qt又是C++写成的。
debian是由gnome这个图形库写成的,gnome是由GTK写成的。其实ubentu和debian的核心都是linux,只是图形库用的不同。因此GTK和QT从一诞生开始就是竞争关系,逐渐也演化成了
两大图形阵营,这两大阵营也爆发了旷日持久的竞争,每个阵营都有许多在国际上赫赫有名的公司所支持(google,IBM,sun,oracle,nokia,ericsson,等等),它们也互不相让(感觉好像在讲一个史诗故事一样,呵呵)。其实都是各有千秋,就好象java和c/c++.
phonon:最开始是kde这个阵营一些又厉害又无聊的高手们(好像独孤求败之类的人)用C++写成的开源多媒体框架或者叫类库,其实就是一系列API。后来当QT被nokia收购以后(别说你不知道Qt被nokia收购了),为了更好的在S60及以后的版本上编写多媒体程序,于是nokia就把phono用QT的风格封装了一下然后强加到QT这个大库里面去了。其实你可以去看看phonon的源码,封装的真的不怎么样,很多地方都是无用的代码绕来绕去。
gstreamer和xine都是比较有名的开源多媒体库,其实也是一系列API它们其实都是调用著名的FFmpeg来进行多媒体文件的编解码。也就是说他们下层调用的是FFmpeg.
Phonon在linux核心的操作系统里面就调用gstreamer的API,当然你必须先把FFmpeg装好了。
phonon在另外的操作系统里面就调用xine(请原谅我忘记是哪个系统了),但是我知道在mac os里面是调用苹果公司的Quick Time的API
其实他们的关系就是从最底层的FFmpeg->gstreamer(linux)/QuickTime(mac os)/xine(忘了)->phonon->qt写的应用程序(比如说你自己可以用Phonon的API写一个mp3的播放器),一层层的封装一层层的调用。
够清楚了吧。