南京工程学院毕业设计说明书(论文)
图4.1 安装Mplayer 成功
此时在MPlayer-1.0rc4目录下会生成可执行文件,名为“mplayer”,
该文件就是安装成功后的Mplayer 。将歌曲“1.mp3”复制到/opt/目录下,输入如下命令:mplayer /opt/songs/1.mp3 ,就进入播放界面了,如图4.2所示。如果没有声音的话,在播放命令之前输入如下命令:modprobe snd_pcm_oss,然后再进行播放。如果还是不出声音,请关注下VMware音频设置以及操作系统音频设定是否正确。
图4.2 用X86平台的MPlayer播放音乐
4.3.2 向ARM平台移植MPlayer
26
南京工程学院毕业设计说明书(论文)
MPlayer的移植过程主要包括源代码的获取,库的安装,详细过程如下所示:
(1)下载好下面的源代码:
MPlay-0.15.2b.tar.gz libid3tag-0.15.2b.tar.gz libmad-0.15.2b.tar.gz
(2)编译安装libid3tag-0.15.2b。
解压libid3tag-0.15.2b.tar.gz软件包,会生成libid3tag-0.15.2b目
录。进入该目录,在该目录下使用./configure命令配置这些库编译可选项,例如:指定交叉编译器、编译选项、打开生成静态库选项(--disable-shared表示不生成动态库)、关闭调试和安装路径等,然后用ARM交叉编译工具交叉编译。详细地命令如下:
tar xzvf libmad-0.15.1b.tar.gz cd libmad-0.15.1b ./configure
CC=arm-linux-gcc
--host=arm-linux
--disable-shared --disable-debugging --prefix=/tmp/libid3tag/id3
make
make install
完成后会在/tmp/libid3tag/id3/目录下生成包含头文件和库文件的文件夹include和lib。其中include文件夹下的头文件是“id3tag.h”; lib文件夹下的静态库文件是“libid3tag.a”
(4) 编译安装libmad-0.15.2b。
解压libmad-0.15.2b.tar.gz源码包之后,会在当前目录下生成的libmad-0.15.2b目录。进入该目录,在该目录下使用./configure命令配置这些库编译可选项,例如:指定交叉编译器、编译选项、生成静态库、关闭调试和安装路径等,然后用ARM交叉编译工具交叉编译libid3。详细的命令如下:
tar xzvf libmad-0.15.1b.tar.gz cd libmad-0.15.1b
./configure CC=arm-linux-gcc --host=arm-linux --disable-shared
27
南京工程学院毕业设计说明书(论文)
--disable-debugging --prefix=/tmp/libmad/mad
make
make install
完成后在/tmp/libmad/mad/目录下生成包含头文件和库文件的文件夹include和lib。其中include文件夹下的头文件是“mad.h”;lib文件夹下的静态库文件是“libmad.a”。为了方便下一步对MPlayer的编译,将一小节中生成的id3tag.h、libid3tag.a文件也对应地放到/tmp/libmad/mad/目录下的include和lib目录下面。
(5)编译安装MPlayer的步骤
将MPlayer-1.0rc4.tar.gz 源码包,放到 linux下, 解压 MPlayer 源
码tar xzvf MPlayer-1.0rc4.tar.gz;
在解压后的MPlayer 源码目录创建一个脚本文件,名为
“mplayer_config_file”。该文件的实质是对./congigure命令中的那些编译参数进行指定:vim mplayer_config_file ,向其中增加如下内容:
./configure \\
--prefix=/data/lost+found/mplayer_install \\ --disable-mp3lib \\ --disable-armv5te \\ --disable-armv6 \\ --disable-mencoder \\ --disable-iconv \\ --disable-live \\ --disable-dvdnav \\ --disable-dvdread \\
--disable-dvdread-internal \\ --disable-libdvdcss-internal \\ --enable-libavcodec_a \\
--enable-libavcodec_mpegaudio_hp \\ --disable-ivtv \\
28
南京工程学院毕业设计说明书(论文)
--enable-mad \\ --enable-fbdev \\ --enable-ossaudio \\ --enable-alsa \\
--enable-cross-compile \\ --cc=arm-linux-gcc \\ --host-cc=gcc \\ --target=arm-linux \\ --enable-static \\ --disable-network \\ --disable-inet6 \\ --disable-ftp \\ --disable-win32dll \\ --disable-vcd \\ --disable-tv \\
--extra-cflags=-I/tmp/libmad/mad/include \\ --extra-ldflags=-L/tmp/libmad/mad/lib \\ 2>&1 |tee logfile
保存后退出。(说明:第二行的--disable-mp3lib ,表示使编译的时候
不包含mp3lib解码器,因为本次毕业设计中的MPlayer播放器将使用解码性能更优秀的mad解码器,即15行的--enable-mad 参数。)
依次执行下面的命令:
./mplayer_config_file make make make install
(6)拷贝MPlayer可执行文件
将编译成功后生成的可执行文件mplayer放在开发板的/usr/bin目录下。
29
南京工程学院毕业设计说明书(论文)
方法:可以通过Windows系统中的ftp工具等,比如8uftp软件。然后将将编译好的可执行程序mplayer 复制到文件系统中的/usr/bin 目录下,并使用如下命令对其增加权限:
chmod 777 mplayer
(6)mplayer在开发板上的测试
进入/usr/bin在开发板终端输入: mplayer –ac mad
/var/ftp/pub/songs/2.mp3”,可以听到歌曲了。(说明,-ac mad 表示使用mad库来解码),如图4.3所示。
图4.3 使用mplayer播放MP3格式的歌曲
4.4 设计基于Qt/E的播放器图形
4.4.1 Qt的实现原理和优势
Qt/Embedded(简称Qt/E)是专门面向嵌入式产品中设计图形用户界面的
工具软件,简单说来的话QtE就是Qt的嵌入式版本。
使用Qt/E的话,开发者可以方便的移植程序到不同的平台上,主要的工
作就是重新编译代码,完全不需要对代码进行任何的修改,这是Qt移植同Bootloader移植、Linux内核移植、文件系统移植的最大区别,而这原因在于Qt是建立在应用层之上的,不需要同硬件直接接触,这样也减少了程序开发员的工作量。
30