主机系统:ubuntu 9.10
交叉编译器:arm-none-linux-gnueabi
gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203)
1 编译alsa-lib-1.0.25.tar.bz2
./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/alsa_lib --disable-python --with-configdir=/usr/local/share --with-plugindir=/usr/local/lib/alsa_lib
#make && make install
将/usr/local/share /usr/local/lib/alsa_lib移植到开发板的相应路径,alsa_lib文件夹的lib里的lasound移植到/usr/lib/
2 编译alsa-utils-1.0.25.tar.bz2
./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/alsa-utils/ --with-configdir=/usr/local/share CFLAGS="-I/usr/local/alsa_lib/include" LDFLAGS="-L/usr/local/alsa_lib/lib -lasound" --disable-alsamixer --disable-xmlto
以下是一些用alsa-utils测试样例
播放wave文件
aplay /mnt/nfs/test.wav
变频播放,(以是以 44 KHz来播放音频)
aplay -D rate_44k /mnt/nfs/test.wav
录音,以20秒的间隔(-d 20),立体声(-c 2),频率是 8000Hz来录制Wave格式音频
arecord -d 20 -c 2 -t wav -r 8000 -f "Signed 16 bit Little Endian" /mnt/nfs/test.wav
测试混音播放(先是播放test1.wav,然后再同时播放test2.wav)
aplay -D plug:dmix_44k /mnt/nfs/test1.wav &
aplay -D plug:dmix_44k /mnt/nfs/test2.wav
设置放音增益(0 to 3)
amixer set Master 1
设置录音音量(0-31)
amixer set Line 10
注:
1 编译的过程出现: can not stat "t-ja.gmo" 等等,通过 “touch alsaconf/po/t-ja.gmo” 解决。 缺什么加什么
2 添加对麦克风的支持
3 driver、lib、utils三个库的版本要一致,否则会出错。采用1.0.21