如何修復mpc超時錯誤
我在 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的文件到處都說這是一個壞主意,我相信他們有一個好的原因。