Mpd

如何修復mpc超時錯誤

  • April 6, 2013

我在 Raspbian (debian) 上使用 mpc/mpd。執行 MPD 它開始:

sudo mpd --no-daemon --stdout --verbose  /etc/mpd.conf
config: loading file /etc/mpd.conf
path: path_set_fs_charset: fs charset is: UTF-8
database: reading DB
disabling the last.fm playlist plugin because account is not configured
daemon: opening pid file
daemon: writing pid file
avahi: Initializing interface
avahi: Client changed to state 101
avahi: Client is CONNECTING
state_file: Loading state file /var/lib/mpd/state
decoder_thread: clearing mixramp tags
decoder_control: mixramp_start = NULL
decoder_control: mixramp_prev_end = NULL
playlist: queue song 1:"http://mp3channels.webradio.rockantenne.de/classic-perlen"
input_curl: icy-metaint=16000
decoder: audio_format=44100:24:2, seekable=false
output: opened plugin=pulse name="Pulse" audio_format=44100:16:2
output: converting from 44100:24:2

但是從播放列表播放流失敗:

mpc play 1
error: Timeout

日誌文件說:

client: [3] opened from 127.0.0.1:55768
client: [3] process command "status"
client: [3] command returned 0
client: [3] process command "play "0""
playlist: play 0:"http://mp3.webradio.rockantenne.de:80"

URL 本身可從設備訪問。

任何線索如何診斷/修復超時錯誤?

更新:

它也掛在其他各種場合:

pi@raspberrypi ~ $ sudo mpd --no-daemon --stdout --verbose  /etc/mpd.conf
config: loading file /etc/mpd.conf
path: path_set_fs_charset: fs charset is: UTF-8
database: reading DB
disabling the last.fm playlist plugin because account is not configured
daemon: opening pid file
daemon: writing pid file
avahi: Initializing interface
avahi: Client changed to state 101
avahi: Client is CONNECTING
state_file: Loading state file /var/lib/mpd/state
decoder_thread: clearing mixramp tags
decoder_control: mixramp_start = NULL
decoder_control: mixramp_prev_end = NULL
playlist: queue song 1:"http://mp3channels.webradio.rockantenne.de/classic-perlen"
input_curl: icy-metaint=16000
decoder: audio_format=44100:24:2, seekable=false
icy_metadata: unknown icy-tag: 'StreamUrl'
client: [0] opened from 127.0.0.1:55789
client: [0] process command list
client: command_process_list: process command "status"


ROCK ANTENNE: Heroes Del Silencio - Entre dos tierras
[paused]  #1/5   4:43/0:00 (0%)
volume: 30%   repeat: off   random: off   single: off   consume: off
ERROR: problems opening audio device

從你的日誌

  • 您以超級使用者身份啟動 mpd
  • 你用pulseaudio
  • mpd 似乎不允許連接到 pulseaudio

基本上,以超級使用者身份啟動 mpd 可能是個壞主意。如果您以使用者身份登錄並將其用作簡單的音樂播放器,您應該以普通使用者身份啟動 mpd。在這種情況下,如果 pulseaudio 沒有執行,它將作為普通使用者程序啟動。您可以使用ps aux | grep pulse. 請注意,要能夠啟動 pulseaudio 伺服器,您的使用者應該屬於該pulse-access組。

如果您將樹莓派用作音頻伺服器,可以從網路訪問,那麼您可能需要讓 mpd 獨立於任何登錄使用者執行,並在啟動時自動啟動。要控制在引導時啟動的守護程序,請使用sysv-rc-conf. 在這種情況下,mpd 應該作為守護程序啟動,並且該程序所屬的使用者在/etc/mpd.conf. 確保在此文件中取消註釋配置行,以使伺服器可從您的網路訪問。然後您必須確保 mpd 使用者被允許啟動和訪問 pulseaudio,因此也屬於該pulse-access組。我不確定是否允許 mpd 在沒有 X 會話的情況下啟動伺服器,本教程指出,在這種情況下,您可能必須考慮以下解決方案。

您在最後一個設置中可能遇到的一個問題是,如果您以使用者身份登錄並且 mpd 以其自己的使用者身份執行,則兩個 pulseaudio 伺服器可能難以共存,而第一個伺服器可能會獲取對音頻設備的訪問權限,防止另一個人能夠播放聲音。我最終將pulseaudio作為系統範圍的守護程序執行,因為我沒有找到其他直接的解決方案,我很高興有一個,因為pulseaudio的文件到處都說這是一個壞主意,我相信他們有一個好的原因。

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