ALSA调试工具详解

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
	}
]

这里设定了一个钩子,去读取相关目录配置文件:

/usr/share/alsa/alsa.conf.d/
/etc/asound.conf
~/.asoundrc

猜你喜欢

转载自blog.csdn.net/qq_33487044/article/details/105917602