应用Phonon框架实质上分4个部分,你的程序,Phonon库,Phonon后端插件(phonon_backend),真正的后端。 Phonon其实什么都不干,他只是提供了一套API接口,这套接口可以给你的程序调用,同时也是给编写后端插件提供一个规范。
经过几天的尝试,发现安装最方便的模式是:
Phonon:运用qt自带的phonon生成。
Phonon后端插件(phonon_backend):使用phonon_mplayer
后端:使用mplayer播放器。
妥善运用QT4.8.6工具,实现起来就会比较简单。
几个注意点:
1、其中涉及到一些qmake的过程,一定要正确指定你想使用的编译器的qmake工具,如果直接qmake,将会使用系统自带的qmake。
2、注意库文件的依赖关系。
phonon-mplayer源代码下载的传送门:phonon-mplayer下载
一、安装获取Phonon的库文件
最简单的方法是,从QT自带的线程的源码中编译产生。
我用的是QT4.8.6。
QT4.8.6的源代码QT4.8.6下载。
#tar -zxvf qt-everywhere-opensource-src-4.8.6-tar.gz
#cd qt-everywhere-opensource-src-4.8.6
phonon的源代码的.pro文件在根目录的 src/phonon 文件夹下,代码不在这个目录下,不过不妨碍,这时候如果直接qmake,是会失败的,会提示缺少一些依赖关系,因此,为了免除这些烦恼,我的做法是,先把整个qt4.8.6都重新编译一编,在这次编译中,配置文件中配置不编译phonon,如果选择phonon,可能会失败,即配置为-no-phonon。别的配置请根据需要来,具体的qt4.8.6的编译方法,在之前的文章中介绍过,不再赘述。
然后这时候,进入phonon的文件夹。
#cd src/phonon
#make
#make install//生成了MIPS可用的phonon的相关库文件
phonon的库文件生成目录是在你刚编译的qt4.8.6的目录下面的lib文件夹下。
libphonon.la
libphonon.prl
libphonon.so
libphonon.so.4
libphonon.so.4.4
libphonon.so.4.4.0
二、生成phonon-mplayer的后端插件
#tar -zxvf phonon-mplayer.tar.gz
#cd phonon-mplayer
#cd mplayer
#/opt/qt-4.8.6-phonon/bin/qmake
//用第一步中,刚编译qt4.8.6生成的结果中的bin文件夹下的qmake进行qmake操作。会发现这个目录下多了一个Makefile文件,你可以打开看下,里面已经选择了mipsel的编译器。
#make
这时候在这个目录下,有一个叫phonon_backend的文件夹,里面已经生成了一个libphonon_mplayer.so的库。将这个文件夹,整个的复制到qt-4.8.6-phonon中的plugins目录下。
#cp -rf phonon_backend /opt/qt-4.8.6-phonon/plugins/
三、将库文件移植到开发板中
将qt-4.8.6-phonon中的lib及plugins两个文件夹移植到龙芯1B中,并将其添加到环境变量,移植过程不赘述。
四、编译mplayer
依次编译libmad,mpg123,zlib,最后编译mplayer,直接上配置,不赘述。
4.1 编译libmad
#./configure --host=mipsel-linux
--prefix=/home/loongson/tools/mplayer/install
CC=mipsel-linux-gcc
--enable-fpm=mips
--enable-static
--disable-shared
--disable-debugging
--enable-speed
--enable-sso
#make
#make install
编译libmad,还有别的问题出现,在之前一篇文章中已经讨论过,不赘述。
4.2 编译mpg123
#./configure CC=mipsel-linux-gcc
--host=mipsel-linux
--target=mips
--prefix=/home/loongson/tools/mplayer/install
--with-cpu=generic_nofpu
#make
#make install
4.3 编译zlib
#./configure --prefix=/home/loongson/tools/mplayer/install
#vi Makefile
CC=mipsel-linux-gcc
LDSHARED=mipsel-linux-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
CPP=mipsel-linux-gcc -E
AR=mipsel-linux-ar rc
RANLIB=mipsel-linux-ranlib
#make
#make install
4.4 编译mplayer
#./configure --disable-mencoder --disable-live --disable-mp3lib --disable-win32dll --disable-dvb --disable-dvdread --disable-dvdnav --disable-ivtv \
--enable-fbdev \
--disable-sdl \
--enable-ossaudio \
--cc=mipsel-linux-gcc --host-cc=gcc --target=mips --enable-cross-compile \
--prefix=/home/loongson/tools/mplayer/install \
--extra-ldflags="-L/home/loongson/tools/mplayer/install/lib/" \
--extra-cflags="-I/home/loongson/tools/mplayer/install/include/" \
--disable-debug \
--disable-mad \
--disable-static
#vi Makefile //配置文件需要修改一处内容
//修改Makefile文件中的,$(INSTALL) -m 755 $(INSTALLSTRIP) $< $(BINDIR),把 $(INSTALLSTRIP) 去掉
#make
#make install
这时候,就在/home/loongson/tools/mplayer/install目录下生成了相关的库文件及可执行文件,移动到移动到开发板,并将库文件添加到环境变量。