如何更改具有相同控件名称的声卡的音频级别

如何更改具有相同控件名称的声卡的音频级别

我正在尝试编写一个脚本,根据连接的设备自动更改播放/捕获音频级别。

我使用的是带有 4 通道输入/输出的 MAYA44 USB+ 声音。

感谢这里的类似问题:设置音量的终端命令?,我学会了使用以下命令:

amixer -c 2 sset Line,1 50%

我遇到的问题是,捕获控件似乎与播放控件共享相同的名称:Line

在此输入图像描述

正在做

amixer -c 2 sset Line 50%

更改两个控件的值。

如上所述,我正在编写一个脚本来自动执行此操作,因此我不想进入 Alsamixer 并手动执行此操作。

有没有办法重命名控件以避免命名冲突?否则,是否可以在“Line”值中添加一些后缀或前缀来指定我想要影响 CAPTURE 设备?以某种方式使用脉冲​​音频是否是另一种选择?

基本上,如何在不影响播放值的情况下更改捕获控制值?

答案1

我在这里问了同样的问题: https://raspberrypi.stackexchange.com/questions/50596/how-to-change-audio-levels-of-sound-card-with-same-control-names

并从CL那里得到了答案。

用于amixer -c2 controls列出所有低级控件。

然后您可以amixer -c2 cset ..通过其唯一的 ID 号来选择特定的控件。

在我的设备上运行命令:

>amixer -c 2 controls
numid=7,iface=MIXER,name='Master Playback Switch'
numid=8,iface=MIXER,name='Master Playback Volume'
numid=3,iface=MIXER,name='Line Playback Switch'
numid=5,iface=MIXER,name='Line Playback Switch',index=1
numid=4,iface=MIXER,name='Line Playback Volume'
numid=6,iface=MIXER,name='Line Playback Volume',index=1
numid=9,iface=MIXER,name='Line Capture Switch'
numid=10,iface=MIXER,name='Line Capture Volume'
numid=2,iface=PCM,name='Capture Channel Map'
numid=1,iface=PCM,name='Playback Channel Map'

我最初尝试过这个,但我无法让它发挥作用。只有当我进一步修改它时,我才意识到这个 ID 实际上是'numid=10'而不仅仅是整数10

相关内容