http://write.blog.csdn.net/postedit

Phonon严格来说其实非为Qt的library,Phonon原本就是KDE 4的开放原始码多媒体API,後来与Qt合并与开发,所以简单来说就是Qt使用Phonon这个多媒体框架来提供一般影音多媒体档案的播放,而这些影音多媒体来源可以是档案、网路串流或是指到一个档案的QUrl。

Phonon是一个跨平台多媒体框架,能够在Qt应用程式中使用与播放影音多媒体内容。

通过”qt-sdk-linux-x86-opensource-2009.05.bin”安装的QT SDK是不包含phonon的。但是一般KDE的桌面系统会安装phonon,以便提供给amarok等应用程序使用。可以通过ldd /usr/bin/amarok,查看。

要安装phonon,需要QT SDK的源码包,qt-everywhere-opensource-src-4.6.0.tar.gz。解压之。

tar zxvf qt-everywhere-opensource-src-4.6.0.tar.gz

cd qt-everywhere-opensource-src-4.6.0

./configure

make(时间很长,编了3个小时没搞定,强制退出了。幸运的是phonon中可以make了。)

cd src/phonon

make

cp ../../lib/libphonon.* ~/bin/dev/qtsdk/qt/lib

ok

测试
examples/phonon/qmusicplayer下的例子用mplayer做后端播放音乐会有问题,我使用demos/qmediaplayer。

当然也可以用一个简单的例子,如下:

#include <QtGui>
#include <Phonon/MediaObject>
#include <Phonon/VideoPlayer>
#include <Phonon/BackendCapabilities>

int main(int argv, char **args)
{
    QApplication app(argv, args);
    
    Phonon::MediaObject *music =
         Phonon::createPlayer(Phonon::MusicCategory,
                              Phonon::MediaSource(“/home/dlw/Music/mxshf.mp3”));
     music->play();
     
     /* 视频播放
     Phonon::MediaObject *music =
         Phonon::createPlayer(Phonon::VideoCategory,
                              Phonon::MediaSource(“/media/DLW/movie/One.Night.in.Supermarket.avi”));  
    music->play();
     */

    return app.exec();
}

当然你也可以直接下载 我编译好的lib。libphonon.so.4.3.1http://download.csdn.net/source/2492092

然后解压拷贝到QT SDK的lib中。如 ~/bin/dev/qtsdk/qt/lib,或者 /opt/qtsdk-2009.05/qt/lib。就是你通过qt-sdk-linux-x86-opensource-2009.05.bin安装是选择的目录。