我在 Ubuntu 12.04.3 LTS 无头、无 X 服务器上运行了 mpd/mpc。我决定换掉歌曲;我将旧歌曲移出 /Music 目录,将新歌曲移入,然后运行mpc update
,但无法继续播放。
自然而然地,我开始根据在 Google 上找到的信息进行一些改变,但似乎没有任何效果。
当我运行 mpc 命令时,例如mpc status
,我收到错误消息Failed to read mixer for 'My ALSA Device': no such mixer control: PCM
。
当我使用命令sudo aplay piano.wav
和类似命令时,我可以播放音乐。
以下是一些诊断信息:http://pastebin.com/1CzbeYBC。 它包含
- /etc/mpd.conf
- 播放-L
- 播放-l
- 命令行中的 mpd verbose
- amixer 和 amixer 内容
我将非常感激任何指点!谢谢。
答案1
@CL 是对的;alsa 可以工作,但是 mpd 不能。
我发现如果我切换到 mpd 用户的主文件夹(export HOME=/var/log/mpd
),aplay 命令(例如sudo -u mpd aplay /usr/share/sounds/alsa/Front_Center.wav
)将不再起作用。
继续谷歌搜索直到我找到http://ubuntuforums.org/showthread.php?t=1138454
解决方案是sudo apt-get remove pulseaudio
。一旦完成,一切又恢复正常。
答案2
由于您使用带有 pulseaudio 的 MPD,因此您可以相应地更改 audio_output:
sudo nano /etc/mpd.conf
评论此部分:
#audio_output {
# type "alsa"
# name "My ALSA Device"
# device "hw:0,0" # optional
# mixer_type "hardware" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
#}
取消注释
audio_output {
type "pulse"
name "My Pulse Output"
# server "remote_server" # optional
# sink "remote_server_sink" # optional
}
您可能还需要添加 mpd 用户的权限:
sudo adduser mpd pulse
sudo adduser mpd pulse-access
重新启动 MPD:
sudo systemctl restart mpd
答案3
amixer
对我来说,解决方案是按照输出建议将mixer_control设置为“耳机” 。
audio_output {
type "alsa"
name "My ALSA Device"
mixer_control "Headphones"
}
这是适用于 Raspberry Pi 1 B 的。