查看声音输出是否静音(带有 Pulseaudio 的 ALSA)

查看声音输出是否静音(带有 Pulseaudio 的 ALSA)

我正在尝试寻找一个输出10取决于我的输出是否静音的命令。

我正在尝试这个:

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

获取指定接收器的静音状态(由其符号名称或数字索引标识)。

相关内容