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

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

amixer sset Master mute amixer sset Master unmute 

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

我的问题是:是否有其他方法可以获得相同的结果,amixer不工作?

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

 amixer sset Master 100% 

即使stdout告诉:音量增加但不会切换到最大值

 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] 

任何人都可以帮我吗?

在终端中尝试以下命令

 amixer -c 0 set Master playback 0% mute amixer -c 0 set Master playback 100% unmute 

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

更好的是这个,取消静音所有音频设备。 并将音量设为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 

在上面的例子中,HDMI和光学不是没有变化的。

获取所有声音源,获取其名称,使用amixer形成命令行并执行它

 amixer scontrols | grep -oE "'.*'" | awk -F\' \ '{print "amixer -c 0 set \""$2"\" unmute 100"}' | sh 

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

有一个伟大的,迈克

Mark Rooney的解决方案对我不起作用,但我能够通过明确取消所有通道的静音来解决这个问题。

 #!/bin/bash for i in Master Headphone PCM Front Surround Center LFE Side; do amixer -c 0 set "$i" playback unmute done &>/dev/null 

我得到了频道名称,但运行alsamixer

好的,首先你需要知道你的不同卡号

 alsamixer 

从F6中选择卡片并记下具有Master选项的卡片编号

如果您使用耳机,那么我们更换主机和耳机

 amixer -c 1 set Master toggle && amixer -c 1 set Headphone toggle 

其中-c指定卡号,在此命令中为1。

您使用的命令对我来说也不起作用,但请尝试这些。 他们为我工作。

 amixer set Master 0 amixer set Master 100 

Mark Rooney接受的答案对我没有帮助,因为该命令给了我一个错误(我的声卡有1号):

 amixer: Mixer attach hw:1 error: Invalid argument 

所以我试过了

 amixer set Master 100 unmute 

它适用于当前选定的声卡。 您也可以使用它来静音

 amixer set Master 0 mute