如何从命令行使声音系统静音?
答案1
假设您正在使用 ALSA 驱动程序,请运行:
amixer set Master mute
amixer set Master unmute
或者,您也可以使用:
amixer set Master toggle
打开或关闭静音。
答案2
答案3
我在用着pactl
在我的脚本中。从手册页:
set-sink-mute SINK 1|0|toggle
:设置指定接收器(通过其符号名称或数字索引标识)的静音状态
静音:
pactl set-sink-mute @DEFAULT_SINK@ true
取消静音:
pactl set-sink-mute @DEFAULT_SINK@ false
切换:
pactl set-sink-mute @DEFAULT_SINK@ toggle
使用0
而不是@DEFAULT_SINK@
设置数字索引0的接收器。true=="1", false=="0"。
在 Ubuntu 12.10 上测试。
在我的设置中,amixer unmute 有时会因某种原因失败。
答案4
如果您使用alsa
遵循 goric 答案。
PulseAudio 更好一些,但不那么简单:pactl set-sink-mute 0 1
它为第一个设备工作,但如果您使用另一个接收器输出的耳机则不行。
更好的方法是检查pactl info
并使用Default Sink
。
DEFAULT_SINK=$(pactl info | grep "Default Sink" | cut -d " " -f3)
然后静音:
pactl set-sink-mute "$DEFAULT_SINK" "1"
或取消静音:
pactl set-sink-mute "$DEFAULT_SINK" "0"
我写了一个脚本来管理笔记中的 pulseaudio。如果要使用,请将其另存为volume
,提供执行权限chmod +x volume
并将其添加到您的路径中ln -sv $PWD/volume /usr/local/bin/
。这是我的脚本:
#!/bin/bash
# script name: volume
# Author: glaudistong at gmail.com
# depends on: yad, coreutils, pulseaudio
ps -ef | grep "yad" | grep -E "Volume [^+\-]" | tr -s " " | cut -d " " -f2 | xargs -i kill "{}" 2>/dev/null
DEFAULT_SINK=$(pactl info | grep "Default Sink" | cut -d " " -f3)
DEFAULT_SOURCE=$(pactl info | grep "Default Source" | cut -d " " -f3)
case "$1" in
init)
{
ps -fe | grep yad | grep -q volume ||
{
yad --notification --command "volume up" --text "+ Volume +" --image ~/Pictures/volume-up-dark.png &
yad --notification --command "volume down" --text "- Volume -" --image ~/Pictures/volume-down-dark.png &
}
};;
up)
{
pactl set-sink-volume "$DEFAULT_SINK" +5%
P=$(pactl list | grep -E "Name: $DEFAULT_SINK$|Volume" | grep "Name:" -A1 | tail -1 | cut -d% -f1 | cut -d/ -f2 | tr -d " ")
iconl="$(echo -ne "\U1F50A")"
iconr="$(echo -ne "\U1F56A")"
timeout .6 yad --progress --percentage "$P" --timeout 1 --no-buttons --undecorated --text="$iconl Volume $P% $iconr" --no-focus --center --skip-taskbar --on-top &
};;
down)
{
pactl set-sink-volume "$DEFAULT_SINK" -5%
P=$(pactl list | grep -E "Name: $DEFAULT_SINK$|Volume" | grep "Name:" -A1 | tail -1 | cut -d% -f1 | cut -d/ -f2 | tr -d " ")
iconl="$(echo -ne "\U1F509")"
iconr="$(echo -ne "\U1F569")"
timeout .6 yad --progress --percentage "$P" --timeout 1 --no-buttons --undecorated --text="$iconl Volume $P% $iconr" --no-focus --center --skip-taskbar --on-top &
};;
mute)
{
ismute=$(pactl list | grep -E "Name: $DEFAULT_SINK$|Mute" | grep "Name:" -A1 | tail -1 |cut -d: -f2| tr -d " ")
if [ "$ismute" == no ]; then
s=1
P=0
icon="$(echo -ne "\U1F507")"
else
P=$(pactl list | grep -E "Name: $DEFAULT_SINK$|Volume" | grep "Name:" -A1 | tail -1 | cut -d% -f1 | cut -d/ -f2 | tr -d " ")
icon="