命令取消静音和最大化音量?

giu*_*pen 9 sound command-line alsa

我需要从命令行静音/取消静音。我发现我可以做到:

amixer sset Master mute
amixer sset Master unmute
Run Code Online (Sandbox Code Playgroud)

问题是取消静音的命令不起作用(如本错误报告中所述:https : //bugs.launchpad.net/ubuntu/+source/alsa-utils/+bug/878986

我的问题是:如果混合器不工作,是否有另一种方法可以获得相同的结果?

此外,如果我手动将音量设置为最小然后调用

amixer sset Master 100%
Run Code Online (Sandbox Code Playgroud)

音量增加但不会切换到最大,即使标准输出告诉:

Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 31
Mono:
Front Left: Playback 31 [100%] [0.00dB] [on]
Front Right: Playback 31 [100%] [0.00dB] [on]
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

小智 16

更好的是这个,取消所有音频设备的静音。并将音量设置为 70%

for x in `amixer controls  | grep layback` ; do amixer cset "${x}" on ; done


for x in `amixer controls  | grep layback` ; do amixer cset "${x}" 70% ; done
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,HDMI 和光纤没有取消静音..


Mar*_*ney 8

在终端中尝试以下命令

amixer -c 0 set Master playback 0% mute
amixer -c 0 set Master playback 100% unmute
Run Code Online (Sandbox Code Playgroud)

这应确保所有输出都受到控制。您发布的命令可能导致音量不是 100% 的原因是混音器不会同时释放所有输出,例如耳机或任何其他声音输出。


小智 5

获取所有声音源,获取它们的名称,用 amixer 形成一个命令行并执行它

amixer scontrols | grep -oE "'.*'" | awk -F\' \
 '{print "amixer -c 0 set \""$2"\" unmute 100"}' | sh
Run Code Online (Sandbox Code Playgroud)

取消所有音频设备的静音并将其音量设置为最大。

祝你好运,迈克