Scripting
查看聲音輸出是否靜音(ALSA with Pulseaudio)
我正在嘗試尋找輸出的命令,
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]
? 不應該嗎?提前致謝。
經過長時間的搜尋,我實際上設法找到了答案。這可能對其他正在尋找類似東西的人有所幫助!
你需要什麼:
pacmd list-sinks
這個命令有這樣一行:
muted: no
當我將設備靜音時,這
no
確實會變為。yes
完美的。如果有人需要,我設法使用此命令剝離輸出:pacmd list-sinks | awk '/muted/ { print $2 }'
抱歉發布得太早了,我似乎無法在任何地方找到解決方案。
或者,對於像我這樣沒有 PulseAudio 或只想使用 PulseAudio 的人
amixer
,一種解決方案是:amixer get Master | sed 5q | grep -q '\[on\]'
0
如果未靜音和靜音則返回1
。