1、理解配置文件alsa.conf
配置文件的位置是由Configure阶段的选项来决定的,不过多数时候,Alsa的配置文件位于:/usr/share/alsa目录下,主要配置文件为/usr/share/alsa/alsa.conf ,其它文件是否需要,位置在哪,都是由alsa.conf来决定的。
通常会有/usr/share/alsa/card 和/usr/share/alsa/pcm两个子目录,用于设置Card相关的参数,别名以及一些PCM默认设置。
此外,在alsa.conf中,通常还会引用 /etc/asound.conf 和 ~/.asoundrc这两个配置文件,这两个文件通常是放置你个人需要特殊设置的相关参数。按照Alsa官方文档的说法,1.0.9版本以后,这两个文件就不再是必要的,甚至是不应该需要的。至少是不推荐使用吧。不过,对于我来说,在嵌入式系统中使用,为了简单和方便测试,恰恰是需要修改这两个文件 )
即:
Alsa的配置文件位于:/usr/share/alsa目录下。
/usr/share/alsa/alsa.conf 主要配置文件,这个配置文件会加载读取 /etc/asound.conf 和 ~/.asoundrc 的配置
/usr/share/alsa/card 设置Card相关的参数
/usr/share/alsa/pcm 一些PCM默认设置
2、解释配置文件alsa.conf
Alsa.conf中主要的一些内容包括:用hook读取了/etc/asound.conf 和 ~/.asoundrc这两个配置文件:
@hooks [
{
func load
files [
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]
设置了default pcm的一些默认参数,如,默认使用Card 0 ,Device 0作为音频设备等等。
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.ipc_key 5678293
...
3、alsa-utils说明
alsa :Advanced Linux Sound Architecture的缩写,高级Linux声音架构,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持,音频的play播放record 记录都是通过这个框架完成的
alsamixer:是ALSA配置工具(基于文本下的图形界面),用于配置音频设备的各个参数,可以通过键盘的上下键,左右键等,很方便地设置需要的音量,开关某个switch(开关)等等操作.
amixer :是alsamixer的文本模式,即命令行模式,需要用amixer命令的形式去配置你的声卡的各个选项。amixer可以从应用层来修改音频芯片的寄存器值,决定采用Mic输入、USB输入或者Line输入。
$ amixer controls # show all controls for given card
$ amixer cget numid=10,iface=MIXER,name='Playback Volume'
numid=10,iface=MIXER,name='Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=255,step=0
: values=255,255
| dBscale-min=-127.50dB,step=0.50dB,mute=1
$ amixer cset numid=10,iface=MIXER,name='Playback Volume' 100,100
aplay :播放音频
$ aplay music.wav
arecord :录制音频
$ arecord -t wav -r 44100 -c 1 -f S16_LE test.wav
4、alsa配置状态保存,恢复和自动加载
alsa配置状态保存:
$ alsactl store -f /var/lib/alsa/asound.state
alsa配置状态恢复:
$ alsactl restore -f /var/lib/alsa/asound.state
alsa配置状态自动加载:
$ cd /etc/init.d # 此目录存放启动/停止服务
$ vim S90AUDIO # 新建audio服务
S90AUDIO内容:
#!/bin/sh
#
# Configure aduio alsa state....
#
echo "starting configure aduio alsa state...."
alsactl restore -f /var/lib/alsa/asound.state
参考网址:
理解和使用Alsa的配置文件
linux alsa音频架构的配置与使用
amixer,aplay,arecord交叉编译及使用
ALSA配置状态保存,恢复和自动加载
Alsa项目的官方网址
Alsa LIB API Reference
配置文件的语法
Asoundrc的官方说明文档