Audio

是否有一致的 shell 命令來調整音量?

  • November 17, 2021

我一直在嘗試找到一個一致的 shell 命令來調整筆記型電腦的音量。建議我嘗試(用於靜音/取消靜音):

pactl set-sink-mute 0 toggle

它沒有用,我得到了錯誤

Failed to get sink information: No such entity

經過一番查看,我發現在命令中更改01有效。我認為這是因為 pactl 在啟動時為我的音效卡分配了一個編號,而當我重新啟動筆記型電腦時該編號發生了變化。

這很好,但是當我重新啟動筆記型電腦時,音頻鍵無法再次工作。我在 shell 中嘗試了工作命令並再次得到“沒有這樣的實體”錯誤。如果我改10(即原始命令),它會再次起作用。

這讓我很困惑,因為我認為我只有一張音效卡。無論如何,如果分配給卡的編號不一致,是否有一致的方法來引用該卡並調整其音量?

一台筆記型電腦可能只有一個音效卡,但可以有多個 Pulseaudio 接收器用於音頻播放。

要查看可用接收器的列表:

pactl list short sinks

水槽索引號在引導期間分配,並且水槽的順序可以在引導之間改變。為了確保靜音命令在正確的接收器上工作,請使用符號名稱而不是索引號。

例如:

我係統上的接收器列為:

$ pactl list short sinks
0       alsa_output.pci-0000_00_1b.0.analog-stereo      module-alsa-card.c      s16le 2ch 44100Hz       RUNNING
1       alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 module-alsa-card.c      s16le 2ch 44100Hz       SUSPENDED

RUNNING要靜音的設備:

symbolic name = alsa_output.pci-0000_00_1b.0.analog-stereo

因此在該設備上切換靜音狀態的命令是:

$ pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo toggle

引用自:https://unix.stackexchange.com/questions/560467