Когда я пытаюсь воспроизвести mpd через pulseaudio, отчеты mpd.log:
pulse_output: Не удалось включить «Розовый ROCKI» [pulse]: pa_context_connect () не удалось: соединение отклонено Кажется, что Pulse работает нормально, так как pacmd list-sinks показывает все мои приемники пульса, meb browser audio отлично воспроизводится через приемник по умолчанию, а 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), Music Player Daemon 0.18.7
Обновление: я нашел этот блог где блоггер Луиз, похоже, решил ту же самую (или очень похожую) проблему:
pulse_output: Не удалось включить «Розовый ROCKI» [pulse]: pa_context_connect () не удалось: соединение было отклонено
Я понял благодаря этому сообщению. MPD не смог найти уже запущенный экземпляр pulseaudio, поскольку переменная окружения XDG_RUNTIME_DIR не была установлена, и thet's там, где pulseaudio хранит свои файлы (сокет, процесс pid и т. Д.).MPD, похоже, пытается создать новый процесс pulseaudio, как мой собственный пользователь, и он терпит неудачу, потому что он уже запущен. Я не мог понять, почему он не может просто использовать существующий экземпляр pulseaudio, не пытаясь создать новую.
Я понял благодаря этому сообщению.
[Сервис] Среда = XDG_RUNTIME_DIR = / run / user / 1000MPD не смог найти уже запущенный экземпляр pulseaudio, поскольку переменная среды XDG_RUNTIME_DIR не была установлена, а thet там, где pulseaudio хранит свои файлы (сокет, процесс pid и т. д.). [!d22 ]
Я попробовал его решение:
[Service] Environment = XDG_RUNTIME_DIR = / run / user / 1000
создание нового файл /etc/systemd/system/mpd.service.d/fixenv.conf, содержащий:
Решение XDG_RUNTIME_DIR работало для меня, но нет необходимости создавать файл в / etc / systemd / system. Просто добавьте эту строку в /etc/init.d/mpd:
export XDG_RUNTIME_DIR=/run/user/1000
Я уже указал mpd для запуска в качестве собственного пользователя и группы «audio» в /etc/mpd.conf.
В файле конфигурации MPD вы можете попытаться указать pulseaudio sink:
Чтобы отобразить импульсные звуковые сигналы, запустите эту команду в терминале: 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
Выберите свой основной приемник (второй в моем случае, потому что у меня нет звука HDMI) и скопируйте его имя в mpd.conf audio_output:
audio_output {[!d5 ]
type "pulse"
name "MPD PulseAudio Output"
sink "alsa_output.pci-0000_00_1b.0.analog-stereo"
}