我正在尝试寻找一个输出1
或0
取决于我的输出是否静音的命令。
我正在尝试这个:
amixer sget Master
这是我得到的输出:
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 64
Mono: Playback 64 [100%] [0.00dB] [on]
现在,此处的值会相应变化(如果我减小音量,百分比和 dB 值会发生变化)。但是,如果我进入Pavucontrol
“输出设备”选项卡并将输出静音,则上述命令的输出保持不变。从字面上看没有任何改变。但我的声音确实是静音的。
我应该使用什么命令?为什么不[on]
改为[off]
?不应该吗?
提前致谢。
答案1
经过长时间的搜索,我确实找到了答案。这可能对其他正在寻找类似内容的人有帮助!
您需要什么:
pacmd list-sinks
该命令有这样一行:
muted: no
当我将设备静音时,这no
确实会更改为。yes
完美的。如果有人需要的话,我设法使用此命令删除输出:
pacmd list-sinks | awk '/muted/ { print $2 }'
抱歉发帖太早,似乎我无法在任何地方找到解决方案。
答案2
或者,对于像我这样没有 PulseAudio 或只想使用 PulseAudio 的人amixer
,一种解决方案是:
amixer get Master | sed 5q | grep -q '\[on\]'
0
如果取消静音和静音则返回1
。
答案3
pactl get-sink-mute @DEFAULT_SINK@
Mute: no
如果未静音则输出,Mute: yes
如果静音则输出。
即使您有多个输出也可以工作。@DEFAULT_SINK@
是默认输出的符号名称。从man pactl
:
get-sink-mute SINK
获取指定接收器的静音状态(由其符号名称或数字索引标识)。