您的位置:首页 > 其它

移植madplay和aplay

2012-12-16 20:45 453 查看
转载请表明来源:/article/9112324.html

对于声卡驱动的应用编程,有一个是基于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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: