我的环境有两个音频输出:HDMI 和蓝牙扬声器。通常它们都可以正常工作。例如,
#this plays sound via bluetooth speaker
$ aplay -D default jingle.wav
#this plays sound via HDMI
$ aplay -D plughw:1,7 jingle.wav
但是,mpc play
不播放任何声音。My/etc/mpd.conf
是默认的,除了音乐目录。所以
music_directory "smb://xxx.xxx.xx.x/some_directory"
...
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
}
我使用远程音乐目录(smb
协议)并且连接正常。根据,字段man mpd.conf
的默认值为。但是没有声音,虽然我希望它通过蓝牙扬声器播放,如上面的命令。说device
"default"
mpc play
aplay -D default
sudo mpd --no-daemon --stderr
exception: OutputThread could not get realtime scheduling, continuing anyway: sched_setscheduler failed: Operation not permitted
avahi: Service 'Music Player' successfully established.
client: [0] opened from xxx.x.x.x:xxxxx
No protocol specified
xcb_connection_has_error() returned true
No protocol specified
No protocol specified
xcb_connection_has_error() returned true
exception: Failed to read mixer for 'My ALSA Device': no such mixer control: PCM
最后一行可能是原因,所以我将mixer_type
字段设置为"none"
. 但是还是没有声音。mpc play
成功和当前位置(例如00:56/3:20 (58%)
)进展但没有声音。
如何使用我的蓝牙音箱?如果我设置device
为plughw:1,7
,mpc play
实际上是通过 HDMI 播放声音,如aplay
上面的命令。但是,我想使用蓝牙扬声器。
环境:
$ lsb_relase -d
Description: Linux Mint 19 Tara
$ mpd --version
Music Player Daemon 0.20.18
我mpd
通过sudo apt install mpd
.
Music Player Daemon/Tips and tricks - PulseAudio完美地解决了这个问题。带有pulseaudio的MPD也很有帮助。
该网站实际上就足够了,但让我写下我所做的。首先,我确实将
device
字段设置/etc/mpd.conf
为"alsa"
但这是错误的。默认情况下,蓝牙扬声器不是由管理,alsa
而是由pulseaudio
(至少在 Linux Mint 上,尽管您可以通过alsa
使用例如使用蓝牙扬声器BlueALSA
)。所以该字段的值应该是"pulse"
。但是,默认情况下,在系统范围pulseaudio
内运行时在用户空间中mpd
运行。因此mpd
无法访问当前用户pulseaudio
会话的设置。要mpd
查看设置,您可以打开pulseaudio
的远程功能:并改变线
对此(取消注释并添加一些单词)
并重新启动
pulseaudio
以反映此更改。现在您可以
pulseaudio
使用tcp
协议和通过 ip 地址127.0.0.1
(通常是localhost
)访问 。最后,mpd
应该更改 的设置:并设置
audio_output
字段的值如下并重新启动
mpd
以反映更改。就这样。
补充:
顺便说一句,
aplay -D default jingle.wav
成功但mpc play
没有成功的事实来自运行空间的差异,即在系统范围内运行或作为用户会话运行。所以比较结果是没有意义的。我应该mpc play
比较sudo -u mpd aplay -D default jingle.wav
。后一个命令失败,这是预期的结果。