tl;dr 我想在耳機/擴大機之間進行更改,而無需更改任何配置。怎麼做?
在 Windows 中,每個音訊輸出同時可用,因此我可以將音訊傳送到外部擴大機(連接到後插座)和/或耳機(連接到前插座),而無需更改任何配置。
在 Debian 中,我需要安裝 pavucontrol 並將“輸出設備”、“內建音訊模擬立體聲”、“連接埠”更改為“耳機(未插入)”而不是預設的“線路輸出(插入)”,以使用耳機。預設選擇下,聲音僅傳至後部插座。改為「耳機(拔出)」後,聲音會同時傳到後插座和前插座。如果兩者都可以發出聲音,為什麼這不是每個 Linux 系統中的預設選項?
答案1
如果您確實插入了耳機,而它顯示“耳機(未插入)”,則表示插頭檢測無法正常工作。要么它檢測到您的音訊輸出具有檢測能力,但實際上不具備檢測能力,要么它無法檢測到您的耳機實際上已插入。
為什麼拔出的輸出被禁用?這最有可能實現筆記型電腦的節能。使用電池工作時,每一點電量都很重要。而且它對桌面也沒有損害,假設插入/拔出資訊是正確的,這對你的情況來說是不正確的。
插頭偵測使用韌體表進行工作,該韌體表描述了音訊晶片的哪些輸入插頭檢測引腳與哪些實體連接器相關聯。不幸的是,供應商有時會在韌體表和實際硬體接線之間存在差異,這些差異隨後會在發布的 Windows 驅動程式中得到修正。然後,Linux 用戶需要確定特定於硬體型號的接線錯誤並將其報告給驅動程式開發人員,以便音訊驅動程式可以將特定於型號的怪癖應用於從韌體表讀取的資訊。
在等待將驅動程式怪癖新增至發行版核心時,如果接線錯誤與另一個已存在的情況類似,則可能會有一些模組選項可以達到相同的效果。請盡可能準確地指定您的硬體型號,以便我們能夠透過現有的模組選項解決方法來確定這是否是已知問題。
HD-Audio 音訊晶片也可能具有自動靜音功能,當偵測到耳機已插入時,可以選擇將揚聲器/線路輸出靜音alsamixer -c 0
。-c 0
的混音器,而不是其頂部的PulseAudio 圖層)。如果有一個標記為“自動靜音模式”的可切換設置,那就是它。在 Debian 10 中,它通常預設會被停用,但你可能想檢查一下。
如果您的機殼具有較舊的 AC-97 型音訊輸出,則可能在硬體中實現了連接耳機時靜音其他輸出的功能,在這種情況下,無法輕易停用該功能。
Debian 的alsa-tools-gui
軟體包包含一個hdajackretask
可用於(除其他外)操作插頭偵測資訊的工具。如果您發現硬體中的設定可以使插頭檢測正常工作(或只是停用不工作的插頭檢測,如果這是您能做的最好的事情),請將修復程序和您的系統/主機板型號報告給Linux音訊開發人員以便您的系統特定型號的怪癖可以添加到驅動程式中並自動補償。
關於耳機輸出還有一件事:當在 alsa 開發者郵件列表中討論這個問題時,決定要求耳機用戶進入混音器設置並將耳機輸出調整到合適的音量並保存設置比默認情況下可能通過耳機以可能損害聽力的最大音量發送音訊要好一些。
答案2
您也許可以透過安裝來解決您的問題帕普夫斯,然後運行它,轉到“同步輸出”選項卡,並啟用虛擬輸出設備:
關閉首選項,重新啟動 PulseAudio ( pulseaudio -k
),您應該會看到新的輸出:
選擇該選項,您的音訊將同時傳送到所有配置的裝置。如果未偵測到耳機輸出已連接,這可能仍然不會將音訊傳送到耳機輸出...