我最近全新安裝了 Ubuntu 14.10,但我再次遇到了 MPD 的麻煩。我想我上次已經成功修復了它,但我不確定如何修復。
我的問題是能夠使用帶有 MPD 的外部藍牙揚聲器。更好的是,我希望能夠同時使用插頭揚聲器和藍牙揚聲器。
不幸的是,MPD 不會顯示在 Gnome 音訊設定下產生音訊的應用程式下,因此它忽略了我使用藍牙揚聲器的指令。我認為這是因為 MPD 使用 Alsa 而不是 Pulseaudio。
現在,在我的 mpd.conf 中我有以下幾行
audio_output {
type "pulse"
name "MPD"
# server "localhost"
}
我還嘗試取消伺服器行的註釋,但在這種情況下,MPD 甚至無法啟動。
澄清一下,MPD 運行在用戶 下mpd
,該用戶位於群組pulse
和下pulse-access
,但這似乎還不夠。
現在,我相信我可以在自己的用戶下運行 MPD,這可以解決一些問題,但我寧願不這樣做,因為這台電腦的其他用戶可能也想聽音樂。
讓 MPD 使用 Pulseaudio 的正確方法是什麼(或採取任何必要措施將其連接到預設揚聲器之外的其他揚聲器?)
答案1
與系統範圍模式下的 MPD 不同,PulseAudio 在使用者空間中運作。這意味著,所有pulseaudio設定(包括藍牙發現和提供藍牙音訊接收器)都是透過使用者會話完成的。
MPD 守護程式在系統範圍內運作時,無法存取在使用者工作階段中執行的脈衝音訊裝置。由於理論上可以在系統範圍模式下運行 Pulse Audio,因此這是不建議,至少我們不應該在桌面設定中這樣做。從用戶空間運行 MPD 將是一個更好的選擇。
為了仍然能夠使用正在運行的 PulseAudio 伺服器提供的設備,我們可以使用 PulseAudio 和 MPD 的 TCP 流功能。
這需要以下內容/etc/mpd.conf
:
audio_output {
type "pulse"
name "My PULSE Device"
server "localhost"
}
然後我們還需要載入 TCP 協定以串流傳輸到正在運行的 PulseAudio 伺服器。可以將其新增至/etc/pulse/default.pa
每次使用者登入時載入(或從 CLI 啟動以使用 進行測試pacmd load-module
)。
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 # IP of localhost
免責聲明:這應該適用於切換到藍牙音訊設備,但我無法測試它,因為我的藍牙適配器在我的 14.10 測試系統上有問題。
答案2
@Takkat 提出的解決方案也對我有用,只需稍作修改:
在 Debian Buster 上,我只需在 mpd.conf 選項中替換localhost
為,過度的 mpd 嘗試連接 IPv6 位址並失敗:127.0.0.1
server
::1
ERROR: Failed to open "My PULSE Device" [pulse]; failed to connect: Access denied
(抱歉,我是用答案而不是評論,我是新來的,還沒有足夠的積分來發表評論。如果有人移動或刪除此訊息,對我來說沒有問題)。