这很奇怪,我有一个默认麦克风,还有另一个第二个麦克风。当我使用此命令时,它总是显示未静音,但麦克风音量为 0%。我如何或有什么方法可以准确找到这些值。
$ pactl list | sed -n '/^Source/,/^$/p' | grep Mute
Mute: no
Mute: no
Mute: no
答案1
通过使用Pulseaudio 命令行界面我们将获得大量关于可用来源的信息
pacmd list-sources
将显示一个相当长的列表。当前活动输入标有星号。我们可以将其与grep
但随后会丢失输出对哪个源有效的信息
pacmd list-sources | grep volume
要将输出设置为定义的值,我们需要知道它的索引,该索引也是由list-sources
问题给出的
pacmd set-source-volume <index> <value> # value: 0 = mute 65536 = 100%
我们可能还需要使用
pacmd set-source-mute <index> 0
答案2
您可以使用 访问此信息amixer
。要列出所有声音控件,您可以发出命令
$ amixer controls
...
numid=18,iface=MIXER,name='Capture Source'
numid=19,iface=MIXER,name='Capture Switch'
numid=20,iface=MIXER,name='Capture Volume'
...
然后使用以下代码读取控件的值
$$ amixer cget numid=20
numid=20,iface=MIXER,name='Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=15,step=0
: values=0,0
| dBscale-min=0.00dB,step=1.50dB,mute=0
查看 的手册页amixer
。 也很有趣alsamixer
,它为你提供了更直观的命令行界面。
答案3
我想通过以下方式来实现这一点pactl
,这就是我想出的办法:
# Get active audio source index
CURRENT_SOURCE=$(pactl info | grep "Default Source" | cut -f3 -d" ")
# List lines in pactl after the source name match and pick mute status
pactl list sources | grep -A 10 $CURRENT_SOURCE | grep "Mute: yes"
答案4
这是一个简单的解决方案,只需一行即可切换/取消麦克风静音
我相信这有帮助
我创建了一个 mictoggle 在线脚本
$ cat /usr/local/bin/mictoggle
pactl list sources | grep -qi 'Mute: yes' && pactl set-source-mute 1 false || pactl set-source-mute 1 true