“Не удалось открыть аудиовыход” ошибка при попытке отправить аудио от mpd до pulseaudio

Когда я пытаюсь играть mpd через pulseaudio, mpd.log сообщает:

pulse_output: Не удалось включить "Розовый ROCKI" [импульс]: pa_context_connect () перестал работать:В соединении отказано

  • Импульс, кажется, хорошо работает, с тех пор pacmd приемники списка показывает все мои импульсные приемники, meb игры аудио браузера, прекрасные через приемник по умолчанию, и VLC может играть звук через любого из них.
  • mpd хорошо работает, если я отправляю вывод через alsa вместо импульса
  • И mpd и pulseaudio работают в соответствии с моей учетной записью (fred).
  • fred, mpd, и pulseaudio являются всеми членами импульса, импульсного доступа и аудио групп.
  • Я даже попробовал это различными сборками pulseaudio: 4.0, который идет с Ubuntu 14.04, экспериментальный RAOP2, созданный с импульсом 4.0 и экспериментальный RAOP2, созданный с импульсом 5.0. mpd не будет работать ни с одним из них.

Мой mpd.conf файл является ванильным; импульсный раздел является дженериком:

    audio_output { 
    type "pulse" 
    name "General Pulse" 
    }

Хотя, поскольку laugeo предлагает ниже, я также попытался указать отдельный приемник, оба по имени:

audio_output {
    type        "pulse"
    name        "ROCKI"
    sink        "raop_output.ASAP1826T.local"
}

и индексом #:

audio_output {
    type        "pulse"
    name        "ROCKI"
    sink        "4"
}

Что я должен попробовать затем? Мог конфигурирование pulseaudio для выполнения как справка системной службы?

Это находится на Ubuntu 14.04, pulseaudio 4.0 (и 5.0), Демон Аудиоплеера 0.18.7

Обновление: Я нашел этот блог, где блоггер Louiz, кажется, решил то же (или очень похожий) проблема:

MPD, по-видимому, пытается породить новый процесс pulseaudio как мой собственный пользователь, и он перестал работать, потому что он уже работает. Я не мог понять, почему это не могло только использовать существующий pulseaudio экземпляр, не пытаясь породить новый.

Я понял благодаря этому сообщению.

MPD не мог найти уже рабочий pulseaudio экземпляр, потому что переменная среды, XDG_RUNTIME_DIR не был установлен, и thet’s, где pulseaudio хранит свои файлы (сокет, pid процесса, и т.д.).

Я попробовал его решение:

создание нового файла/etc/systemd/system/mpd.service.d/fixenv.conf содержащий:

[Сервис] Environment=XDG_RUNTIME_DIR =/run/user/1000

(Замените 1000 идентификатором UNIX Вашего пользователя.)

Я перезагрузил, и XDG_RUNTIME_DIR был установлен правильно, и импульс поместил свой изодромный с предварением файл в/run/user/1000/pulse/каталог (мой идентификатор пользователя 1000), но я все еще получаю ту же ошибку от mpd:

pulse_output: Не удалось включить "ROCKI" [импульс]: pa_context_connect () перестал работать:В соединении отказано

Я узнаю больше о Linux каждый день, но сокеты, процесс pids, systemd (разве Ubuntu, как предполагается, не использует выскочку? systemd, кажется, выполняет и запускает вещи), и т.д. все выше моего ранга оплаты прямо сейчас - я потерян в лесах.

7
задан 12 November 2014 в 11:33

3 ответа

Наконец, лучше, чем pulseaudio режим демона, лучшее решение там : это о выполнении mpd как самостоятельно (и не mpd пользователь), таким образом, у Вас нет проблемы использовать Вашу собственную сессию pulseaudio.

А различный ответ, но протестированный и также работа:
настраивают pulseaudio, чтобы работать как "режим демона" вместо стандартного "непривилегированного режима"

  • в терминале, работать
    sudo gedit /etc/init/pulseaudio.conf
    тогда строка некомментария 20 удалений # для получения:
    start on runlevel [2345]
    сохраняют и выходят из gedit.
  • Выполнение это 2 команды в терминале:
    sudo usermod -aG pulse,pulse-access mpd
    sudo usermod -aG pulse,pulse-access your-login
    В 2-й команде, замените "Ваш-вход-в-систему"

Теперь перезагрузка: надо надеяться, это будет работать.

Примечание: Для получения информации этот страница перечисляет причины, почему необходимо избежать pulseaudio режима демона, но я нахожу его хорошо на ПК отдельного пользователя (особенно, я не вижу больше CPU/использования памяти, чем непривилегированный режим).

3
ответ дан 23 November 2019 в 06:40

Решение XDG_RUNTIME_DIR работало на меня, но нет никакой потребности создать файл в/etc/systemd/system. Просто добавьте эту строку в/etc/init.d/mpd:

export XDG_RUNTIME_DIR=/run/user/1000

я уже определил mpd для выполнения как мой собственный пользователь и "аудио" группа в/etc/mpd.conf.

3
ответ дан 23 November 2019 в 06:40

Можно попытаться определить, что pulseaudio впитывают файл конфигурации MPD:

Для отображения приемников pulseaudio выполните эту команду в терминале:
pactl list short sinks

Это произведет что-то как:

0   alsa_output.pci-0000_00_03.0.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   IDLE
1   alsa_output.pci-0000_00_1b.0.analog-stereo  module-alsa-card.c  s16le 2ch 44100Hz   RUNNING

Выбирают Ваш основной приемник (2-й в моем случае, потому что у меня нет звука HDMI), и скопируйте его имя в mpd.conf audio_output:

audio_output {

    type                    "pulse"
    name                    "MPD PulseAudio Output"
   sink                    "alsa_output.pci-0000_00_1b.0.analog-stereo"

}

0
ответ дан 23 November 2019 в 06:40

Другие вопросы по тегам:

Похожие вопросы: