MPD с PulseAudio

MPD с PulseAudio

Недавно я сделал чистую установку 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

(Извините за ответ вместо комментария, я здесь новичок и у меня пока недостаточно очков, чтобы комментировать. Я не буду против, если кто-то переместит или удалит это сообщение).

Связанный контент