Debian 將筆記型電腦揚聲器切換為耳機,但不將 HDMI 切換為耳機,音訊輸出可以自動切換嗎?

Debian 將筆記型電腦揚聲器切換為耳機,但不將 HDMI 切換為耳機,音訊輸出可以自動切換嗎?

使用筆記型電腦揚聲器時,插入耳機會自動將輸出從揚聲器切換到耳機,拔出時反之亦然。透過 HDMI 使用顯示器揚聲器時,沒有自動切換:

當耳機插入(拔出)時,音訊輸出可以在裝置之間自動切換嗎?

Debian 12(書蟲),內核版本 6.7.9-2,pipewire 1.0.5。

答案1

筆記型電腦揚聲器和類比耳機之間的音訊自動切換是在單一音訊晶片的不同輸出之間進行的。這款晶片甚至可以有一些硬體支援:透過 HD-Audio 風格的前面板音訊插孔,它是聲音晶片內的可切換功能,啟用後,當偵測到插入耳機時,會自動靜音其他輸出。

(如果您使用egalsamixer並選擇聲音晶片的實際硬體混音器而不是Pipewire提供的簡化音量控制,您可能會將其視為切換Auto-Mute。)

對於較舊的 AC97 式前面板音訊插孔,它實際上是音訊插孔本身內的機械開關,當插入耳機插孔時,它將中斷揚聲器/線路輸出的輸出訊號。

在 HDMI 和任何類型的耳機之間,或在筆記型電腦揚聲器和 USB 耳機之間切換時,音訊資料流需要切換到不同的音訊晶片。 Pipewire 可以做到這一點,但只有正確設定輸出接收器優先權並啟用自動切換時,它才會這樣做。

這個部落格條目:它描述如何在wireplumber0.4系列中檢查和調整音訊接收器優先級,這是Debian 12所具有的。如果您有 0.5 或更高版本,此建議將不會直接適用wireplumber,因為配置方法在 0.5 版本中已變更。

簡而言之:第一步是在插入新聲音裝置時啟用自動切換pactl load-module module-switch-on-connect

這個 AskUbuntu.SE 問題還包括運行的建議pactl load-module module-switch-on-port-available:我了解,當現有音訊設備上有新連接埠可用時,可以進行切換。

要使上述命令持久存在,請閱讀/usr/share/pipewire/pipewire-pulse.conf範例,並將相關部分新增至目錄*.conf中的檔案~/.config/pipewire/pipewire-pulse.conf.d/(如果不存在則建立它)。例如:

pulse.cmd = [
    { cmd = "load-module" args = "module-always-sink" flags = [ ] } #default
    { cmd = "load-module" args = "module-switch-on-connect" } #uncommented
    { cmd = "load-module" args = "module-switch-on-port-available" }  #added
    #{ cmd = "load-module" args = "module-gsettings" flags = [ "nofail" ] }
]

第二步是確保您的聲音設備獲得適當的優先分配。

您可以用來wpctl status查看 Pipewire 關心的任何裝置的識別號,然後wpctl inspect <number> | grep -e node -e priority查看特定音訊設備的名稱、描述和優先順序。如果預設的優先順序不是您想要的,您可以建立一個~/.config/wireplumber/main.lua.d/60-*.lua檔案來調整它們,內容類似於:

rule = {
  matches = {
    {
      { "node.name", "equals", "alsa_output.usb-MOTU_M4_M4MC0570FU-00.Direct__hw_M4__sink" },
    },
  },
  apply_properties = {
    ["priority.driver"] = 1050,
    ["priority.session"] = 1050,
  },
}

「預期」主要聲音設備的預設優先順序應約為 1009,因此,透過為某些其他聲音設備分配更高的值,可以使其pipewire優先於其他可用的聲音設備。但您不應指派高於 1500 的值,因為高於該值的值是為監視裝置保留的。

顯然各個連接埠也有優先值,不幸的是我目前不知道如何自訂它們。pactl list cards儘管輸出相當長,但您可以查看它們。

如果有人知道調整 Pipewire 連接埠優先權的好方法,如果您不想編寫自己的完整答案,請隨意編輯它。

相關內容