Недавно я сделал чистую установку Ubuntu 14.10 и снова столкнулся с проблемой MPD. Думаю, в прошлый раз мне удалось это исправить, но я не уверен, как.
Моя проблема в том, чтобы иметь возможность использовать внешний динамик Bluetooth с MPD. Еще лучше, я хотел бы иметь возможность использовать как подключенный, так и динамик Bluetooth одновременно.
К сожалению, MPD не отображается в приложениях, которые производят звук в настройках звука Gnome, и, следовательно, игнорирует мою директиву использовать динамик Bluetooth. Я думаю, это потому, что MPD использует Alsa вместо Pulseaudio.
Теперь в моем mpd.conf есть строки
audio_output {
type "pulse"
name "MPD"
# server "localhost"
}
Я также пробовал раскомментировать строку сервера, но в этом случае MPD даже не запускается.
Для ясности: MPD работает под пользователем mpd
, который находится под группами pulse
и pulse-access
, но этого, похоже, недостаточно.
Теперь я думаю, что могу запустить MPD под своим собственным пользователем, и это могло бы решить некоторые проблемы, но я бы предпочел этого не делать, поскольку другие пользователи этого ПК, возможно, также захотят послушать музыку.
Как правильно заставить MPD использовать Pulseaudio (или сделать все необходимое, чтобы подключить его к другим динамикам, отличным от используемых по умолчанию?)
решение1
В отличие от MPD в системном режиме PulseAudio работает в пользовательском пространстве. Это означает, что все настройки PulseAudio, включая обнаружение Bluetooth и предоставление аудиоприемника Bluetooth, выполняются из сеанса пользователя.
Демон MPD, когда запущен в масштабе всей системы, не может получить доступ к устройствам Pulse Audio, запущенным в сеансе пользователя. Поскольку теоретически возможно запустить Pulse Audio в масштабе всей системы, этоне рекомендуется, по крайней мере, мы не должны этого делать в настройках рабочего стола. Тогда было бы гораздо лучшим вариантом запустить MPD из пользовательского пространства.
Чтобы по-прежнему иметь возможность использовать устройства, работающие на сервере PulseAudio, мы используем возможности потоковой передачи TCP как PulseAudio, так и MPD.
Для этого необходимо следующее /etc/mpd.conf
:
audio_output {
type "pulse"
name "My PULSE Device"
server "localhost"
}
Затем нам также нужно загрузить протокол TCP для потоковой передачи на работающий сервер PulseAudio. Это можно добавить в , чтобы /etc/pulse/default.pa
загружать каждый раз, когда пользователь входит в систему (или запустить из CLI для тестирования с pacmd load-module
).
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 # IP of localhost
Отказ от ответственности:Это должно работать для переключения на аудиоустройство Bluetooth, но я не смог это проверить, поскольку у моего Bluetooth-ключа возникли проблемы на моей тестовой системе 14.10.
решение2
Решение, предложенное @Takkat, также сработало для меня с небольшим изменением:
В Debian Buster мне просто пришлось заменить localhost
на 127.0.0.1
в параметре mpd.conf server
, вместо этого mpd попытался подключиться с адресом IPv6 ::1
и потерпел неудачу:
ERROR: Failed to open "My PULSE Device" [pulse]; failed to connect: Access denied
(Извините за ответ вместо комментария, я здесь новичок и у меня пока недостаточно очков, чтобы комментировать. Я не буду против, если кто-то переместит или удалит это сообщение).