1. Control接口
Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。
对于Mixer(混音)来说, Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的, 比如设置音量等。
可以用如下命令来查看:
a. alsamixer是Linux 音频架构ALSA中的Alsa工具的其中一个,用于配置音频的各个参数。
alsamixer是基于文本下的图形界面的,可以通过键盘的上下键,左右键等,很方便地设置需要的音量,开关某个switch(开关)等等操作。
b. amixer,是alsamixer的文本模式,即命令行模式,需要用amixer命令的形式去配置你的声卡的各个选项。
关于驱动里面已经提供了多少接口可以去操作,可以用命令:
# amixer controls
numid=3,iface=MIXER,name='Master Mode Switch'
numid=29,iface=MIXER,name='Master Mux'
numid=4,iface=MIXER,name='Master Quality Switch'
numid=2,iface=MIXER,name='Master Switch'
numid=1,iface=MIXER,name='Master Volume'
numid=7,iface=MIXER,name='PCM Mode Switch'
.......
2. snd_kcontrol_new结构体
废话不说,直接上图
可以去测试了:
播放:
aplay Windows.wav
调音量:
amixer controls
amixer cget numid=1
amixer cset numid=1 30


![[ALSA架构][ASOC架构][第六话]Control接口与snd [ALSA架构][ASOC架构][第六话]Control接口与snd](http://www.mshxw.com/aiimages/31/297701.png)
