Почему сервер mpd не выводит звук?

2

Я пытаюсь бежать MPD сервер на Ubuntu 12.04.3. Все работало с Ubuntu 11.10 и даже с более ранней 12.04. Я использую Sonata в качестве внешнего интерфейса, и я подключаюсь, плейлисты доступны, я могу выбрать песню, проиграть ее - кроме вывода звука. Звуковая система основана на импульсно-аудио.

MPD имеет довольно хорошие Wiki и импульсная аудио конфигурация покрыто тоже. Я пытался отладить свои проблемы, но все равно не получил работу.

Что я имею? Я имею:

  • MPD-демон, работающий с запущенным Pulse-Audio, в

    $ ps aux | grep -i mpd
    mpd      13770  3.9  5.4 144500 13636 ?        Ssl  Sep13 331:18 /usr/bin/mpd /etc/mpd.conf
    mpd      13778  1.4  1.0  88516  2532 ?        Sl   Sep13 119:21 /usr/bin/pulseaudio --start --log-target=syslog
    
  • В /etc/mpd.conf у меня есть

    audio_output {
            type            "pulse"
            name            "MPD PulseAudio Output"
            # sink      your-sink-name-here"
    }
    
  • ради /etc/pulse/client.conf я включил автоспуск (уже по умолчанию?):

    autospawn = yes
    
  • в /var/log/mpd/mpd.log я вижу проигранные песни

  • под пользователем "mpd" я могу играть музыку с mplayer и это хорошо работает с Pulse-Audio

я не может получить

  • список приемников под обычным пользователем или mpd:

    $ pacmd list-sinks
    No PulseAudio daemon running, or not running as session daemon.
    
  • любой звук с mpd-сервера

В системном журнале я вижу, что импульс не может подключиться к шине D, например:

    Sep 19 20:43:23 musa pulseaudio[787]: [pulseaudio] module-always-sink.c: Unable to load module-null-sink
    Sep 19 20:43:54 musa pulseaudio[1098]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
    Sep 19 20:43:54 musa pulseaudio[1098]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

Как заставить MPD работать снова?

wk.
источник
Похоже, вам нужно либо сообщить mpd, какой приемник pulseaudio использовать, либо настроить pulseaudio на использование правильного приемника по умолчанию. pulseaudio допустил ошибку при попытке загрузить модуль-ноль-приемник, но даже если он преуспел, этот приемник просто тихо выбрасывает аудиоданные, так что это не то, что вам нужно. Каков выход pacmd list-sinks?
wingedsubmariner
@wingedsubmariner: да, это может быть проблемой, но а) вывод pacmd list-sinks в моем сообщении и б) mplayer хорошо играет как под обычным пользователем, так и под mpd-пользователем. Я вижу, что есть проблема с подключением к D-BUS.
wk.
Имея точно такую ​​же проблему в Arch Linux. Процесс pulseaudio запущен, и Kodi может выводить на него звук, но mpd нет, и я не могу получить список приемников.
Budric

Ответы:

1

Я использую Archlinux, а не Ubuntu, но у меня была такая же проблема. Очевидно, причина того, что списочные приемники pacmd не работали, заключается в том, что, по-видимому, необходимо установить среду DISPLAY ( обсуждение на форуме ). После того, как я установил это для пользователя, я мог получить список приемников. Я перенастроил systemd mpd.service, чтобы запустить mpd от моего пользователя, и установил Environment = "DISPLAY =: 0"

К сожалению, это означает, что пользователь должен войти в сеанс X, а в системе установлен xorg. Я думаю, что вы можете перенастроить PulseAudio для запуска в качестве демона для всей системы, но с возможными проблемами безопасности ( кроме этой рекламы, я не знаю точно, что они )

Budric
источник
Для меня было решением вернуться к Алсе. Но я надеюсь, что ваше решение поможет тем, кто запускает mpd на рабочем столе. Для сервера я не использую X.
wk.