帶脈衝音頻的 MPD

帶脈衝音頻的 MPD

我最近全新安裝了 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.1server::1

ERROR: Failed to open "My PULSE Device" [pulse]; failed to connect: Access denied

(抱歉,我是用答案而不是評論,我是新來的,還沒有足夠的積分來發表評論。如果有人移動或刪除此訊息,對我來說沒有問題)。

相關內容