Madplay移植到mini2440步骤

来源:互联网 发布:淘宝可以要发票吗 编辑:程序博客网 时间:2024/05/16 19:08

移植madplay

1.1 libmad简介

MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3)。LIBMAD 提供 24-bit 的 PCM 输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用 libmad 提供的一系列 API,就可以非常简单地实现 MP3 数据解码工作。在 libmad 的源代码文件目录下的 mad.h 文件中,可以看到绝大部分该库的数据结构和 API 等。

其网址如下:

http://www.underbit.com/products/mad/

ftp://ftp.mars.org/pub/mpeg/下载以下三个文件:

libid3tag-0.15.1b.tar.gz

libmad-0.15.1b.tar.gz

madplay-0.15.1b.tar.gz

libid3tag  :是分析MP3文件的库;

libmad  :是MP3解码库;

madplay :是基于上面两个库的MP3播放器,该播放器是基于命令行操作的播放器。

1.2 下面是移植上面三个源码的步骤

移植的主要步骤为解压缩、配置、编译、安装;

一般源码包解压缩之后,使用源码包目录下的./configure脚本来配置源码包;可以使用./configure --help查看配置选项。

这里我们主要配置以下两个选项:

    --host:    用于指定平台,如:

            --host=arm-armv4t-linux-gnueabi

    --prefix:  用于指定安装路径,如:

            --prefix=/opt/crosstool/4.3.2/arm-armv4t-linux-gnueabi

Ø  移植libid3tag

 

1.        tar zxvf libid3tag-0.15.1b.tar.gz

2.        cd libid3tag-0.15.1b/

3.        ./configure --prefix=/home/bt/madplay/install/ --host=arm-2440-linux-gnueabi

4.        make

5.        make install

Ø  移植libmad

1.        tar zxvf libmad-0.15.1b.tar.gz

2.        cd libmad-0.15.1b/

3.        ./configure --prefix=/home/bt/madplay/install/ --host=arm-2440-linux-gnueabi

4.        make

5.        make install

Ø  移植madplay

1.        tar zxvf madplay-0.15.1b.tar.gz

2.        cd madplay-0.15.1b/

3.        ./configure --prefix=/home/bt/madplay/install/ --host=arm-2440-linux-gnueabi CPPFLAGS=-I/home/bt/madplay/install/include/ LDFLAGS=-L/home/bt/madplay/install/lib/

4.        make

编译完之后将madplay拷贝到根文件系统中(此madplay是可执行文件 位于编译后的madplay-0.15.1b目录内)

cp madplay /home/bt/myrootfs/usr/bin/

将libid3tag、和libmad库拷贝到根文件系统中(usr/lib  如果没有lib目录就新建 )

1.  cp /home/bt/madplay/install/lib/libid3tag.so* /home/bt/myrootfs/usr/lib/ -a

2.  cp /home/bt/madplay/install/lib/libmad.so* /home/bt/myrootfs/usr/lib/ -a

 

到此完成了整个madplay移植到mini2440板子的过程:

1.3 在命令行下播放MP3

madplay移植到根文件系统后,可以在开发板上使用命令来播放MP3;

播放时可以使用 --help查看madplay程序可用使用的命令行参数,这里我们关心的参数有 -v --display-time,-s参数;

如,显示当前音乐播放还剩下多少时间:

madplay -v --display-time=remaining 001.mp3(必须要存在的MP3

文件)

左下角就显示了播放还剩下的时间,-v 表示显示解码信息,--display-time=remaining 表示当前剩下的播放时间;

又如,在音乐文件的2分钟时间开始播放,-s 00:02:00 表示从时间00:02:00开始播放音乐;

madplay -v --display-time=remaining -s 00:02:00 001.mp3

使用madplay播放音乐时还可以向madplay发送信号来暂停和继续播放,如;

暂停:

    killall -STOP madplay

继续:

    killall -CONT madplay

killall和kill命令一样,都是向程序发送信号,不同点在于kill的参数是进程ID,而killall的参数是程序的名字。

上面介绍了madplay的移植和播放,接下来可以编写一个Qt程序来控制madplay的播放,暂停等。

1.4测试MP3播放器(Qt编写)

       前提:根文件系统已经移植了Qt库和tslib

         打开开发板挂载根文件系统成功后

a)        cd mp3Player

b)        ./mp3Player –qws

进入mp3软件播放界面

         选中歌曲按下播放 用耳机收听正常就证明MP3播放器正常工作了

原创粉丝点击