移植madplay和aplay

 

 

转载请表明来源:http://blog.csdn.net/l_d_d/article/details/8302453

 

对于声卡驱动的应用编程,有一个是基于alsa-lib的,这个依赖的是alsa架构。还有madplay以来的就是oss架构。现在来移植这两种:

 

1、madplay移植:

首先准备好三个安装包:
两个库安装包:
libid3tag-0.15.1b.tar.bz2;
libmad-0.15.1b.tar.bz2;
一个应用层安装包
madplay-0.15.2b.tar.bz2

第一步:安装库:
创建一个目录sound(用来存放库、头文件、最终播放命令);

存放库、头文件:
对于库的安装都是执行:
# ./configure --host=arm-linux --prefix=/sound(库、头文件存放目录)----配置
#make-----------------------------------------------------------------编译
#make install---------------------------------------------------------安装
这是sound目录下就有库、头文件。

注意:如果在编译libmad安装包时候,出现错误:
cc1: error: unrecognized command line option "-fforce-mem"
解决:修改Makefile,把-fforce-mem去掉,就可以了。


存放最终播放命令:
进入madplay-0.15.2b源代码中:
#./configure --host=arm-linux --prefix=/sound LDFLAGS="-L/sound/lib" CPPFLAGS="-I/sound/include"
#make
#make install

最后一步把/sound/bin复制到开发板文件系统的bin目录下,把/sound/lib下的*so*也复制到开发板的lib目录下:
#cp sound/bin/ /root/rootfs/rootfs/bin/
#cp sound/lib/*so* /root/rootfs/rootfs/lib/ -d

现在把一个mp3格式的音乐放到根目录:
# madplay /long/lalalala.mp3
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
          Title: 我在那一角落患过伤风
         Artist: 陈绮贞
          Track: 9
           Year: 2004
          Genre: Pop
到这里,mpa的音乐响起。

 

 

 

2、aplay(这部分参考网上来移植的):

1、编译alsa-lib:

# ./configure --host=arm-linux    --prefix= /安装目录          --enable-static --enable-shared  --disable-python --with-configdir=/usr/local/share --with-plugindir=/usr/local/lib/alsa_lib

#make

#make install

 

2、编译apla-util:

#./configure --host=arm-linux    --prefix=/安装目录   --enable-static --enable-shared --with-configdir=/usr/local/share  CFLAGS="前面编译alsa-lib产生的include目录"      LDFLAGS="-L前面编译alsa-lib产生的lib目录  -lasound "  --disable-alsamixer --disable-xmlto

#make

#make install

 

3、把产生的所有lib目录下的库复制到目标版上的/lib目录下;

将/usr/local/share目录下的文件拷贝到目标板上同样的目录/usr/local/share下;

根据自己需要把上面编译产生的bin目下的操作命令复制到开发板的bin目录下,常用的命令有aplay\arecord\amixer。

 

4、测试:

aplay lalalala.wav

 

 

 

你可能感兴趣的:(移植madplay和aplay)