Q1:cannot find -lphonod
编译安装phonon
1 . 用xx/qt/src/phonon/phonon.pro工程,编辑phonon.pro
PHONON_DIR=XXX/qt/src/3rdparty/phonon/phonon //XXX是指你对应的QT主目录
2 . qmake 再make一下就会在xxx/qt/lib下生成libphonon.la、libphonon.so、libphonon.so.4、libphonon.so.4.3 、libphonon.so.4.3.1
Q2:phonon backend plugin could not be loaded
编译phonon后, phonon程序已经可以编译了。可以把Qt demo中的mediaplayer和musicplayer拿来编译,都可以生产可执行文件,也可以执行。但是运行时会弹出phonon backend plugin could not be loaded 。这就是缺少后端插件的情况,这时的程序除了显示出界面什么都不能干。这时候需要编译phonon backend。
因为linux的解码播放后端默认是gstreamer,但QT并没有提供对应的后端插件。
所以得另外找个解决办法:利用mplayer做后端(需另外在linux下安装),再另外做一个后端插件。
基于mplayer的后端插件网上已经有人做好,但有些问题,附上我修改过的phonon-mplayer.tar.gz,
下载链接:http://download.csdn.net/source/3253053
编译方法:
进入phonon-mplayer.tar.gz解压出来后的目录
1.进入/phonon-mplayer/libmplayer目录,
make distclean
qmake
make
//之后会在当前位置生成一个libmplayer.a
2.进入/phonon-mplayer/目录
make distclean
qmake
make
//之后会在当前位置生成一个libphonon_mp.so,这个就是我们要的插件
PS:由于这个后端插件里面有几个目录变量是直接改成我电脑里的绝对地址的,所以编译过程中如果有提示找不到XX文件,请将对应的变量改成你对应目录地址。
如/phonon_mplayer/ phonon_mp.pro的内容:
include(/home/michael/qtsdk-2009.05/qt/src/plugins/qpluginbase.pri) //这里的包含内容要改回你对应QT文件的地址
然后将libphonon_mp.so复制到QT目录下的/qt/plugins/phonon_backend里(如果没有phonon_backend这个目录就新建一个,我就是自己新建一个的-_-!),
这样程序就可以找到backend了。
以上就是如何编译后端插件的方法。如果要使得QT能调用mplayer,还得安装一个 Mplayer,也就是安装一个后端。经个人测试,mplayer直接用apt-get安装最稳定,用源码编译,即使成功也有可能会出现一些未知问题-_-.
参考资料:
http://blog.sina.com.cn/s/blog_572390880100htd7.html
Phonon MinGW 编译指南 (转加引用)
http://hi.baidu.com/lcweik/blog/item/0dfde62213adfd47935807ca.html
http://code.google.com/p/lingouplayer/source/browse/#svn/trunk/artical/QT4.5开源版phonon支持