1、alsa-utils
标准 ALSA
工具, 它使用到 alsa-lib
标准库,一般常用到的有 amixer
,aplay
,arecord
等
1.1、amixer
amixer 是命令行的 ALSA 声卡驱动调节器工具,用于设置 mixer control
- 常用选项
选项 | 功能 |
---|---|
-D,–device | 指定声卡设备, 默认使用 default |
- 常用命令
命令 | 功能 |
---|---|
controls | 列出指定声卡的所有控件 |
contents | 列出指定声卡的所有控件的具体信息 |
cget | 获取指定控件的信息 |
cset | 设定指定控件的值 |
举例:
获取audiocodec声卡的所有控件名
amixer -Dhw:audiocodec controls
获取当前硬件音量
amixer -Dhw:audiocodec cget name='LINEOUT volume'
设置当前硬件音量
amixer -Dhw:audiocodec cget name='LINEOUT volume' 25
1.2、aplay
aplay 是命令行的 ALSA 声卡驱动的播放工具,用于播放功能。
- 使用方法
选项 | 功能 |
---|---|
-D,–device | 指定声卡设备, 默认使用 default |
-l,–list-devices | 列出当前所有声卡 |
-t,–file-type | 指定播放文件的格式, 如 voc,wav,raw, 不指定的情况下会去读取文件头部作识别 |
-c,–channels | 指定通道数 |
-f,–format | 指定采样格式 |
-r,–rate | 采样率 |
-d,–duration | 指定播放的时间 |
–period-size | 指定 period size |
如果播放的是 wav 文件,可以解析头部,识别通道数,采样率等参数。
举例:
aplay -Dhw:audiocodec /mnt/UDISK/test.wav
1.3、arecord
arecord 是命令行的 ALSA 声卡驱动的录音工具,用于录音功能。
- 使用方法:
选项 | 功能 |
---|---|
-D,–device | 指定声卡设备, 默认使用 default |
-l,–list-devices | 列出当前所有声卡 |
-t,–file-type | 指定播放文件的格式, 如 voc,wav,raw, 不指定的情况下会去读取文件头部作识别 |
-c,–channels | 指定通道数 |
-f,–format | 指定采样格式 |
-r,–rate | 采样率 |
-d,–duration | 指定播放的时间 |
–period-size | 指定 period size |
–buffer-size | 指定 buffer size |
举例:
录制5s,通道数为2, 采样率为16000, 采样精度为16bit, 保存为wav文件
arecord -Dhw:audiocodec -f S16_LE -r 16000 -c 2 -d 5 /mnt/UDISK/test.wav
1.4、alsaconf
alsaconf 指的是 ALSA configuration file,使用 alsa-lib 打开声卡,操作 pcm, mixer 时,会加载相关
位置上的配置文件,用于指导操作 pcm,mixer 设备
首先会读取配置文件/usr/share/alsa/alsa.conf,其中有下面一段 hooks
@hooks [
{
func load
files [
{
@func concat
strings [
{ @func datadir }
"/alsa.conf.d/"
]
}"
/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]
这里设定了一个钩子,去读取相关目录配置文件:
扫描二维码关注公众号,回复:
11442913 查看本文章
/usr/share/alsa/alsa.conf.d/
/etc/asound.conf
~/.asoundrc