如何修复 mpc 超时错误

如何修复 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

答案1

从你的日志中

  • 您以超级用户身份启动 mpd
  • 你使用pulsaudio
  • 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的文档到处都表明这是一个坏主意,我相信他们有一个很好的解决方案原因。

相关内容