LINUX.ORG.RU

Переключение ALSA PCM между клинтами

 , , ,


1

2

Имеется Ubuntu/ALSA/PulseAudio на котором крутятся MPD и AirPlay (Shairport-Sync).
Проблема в исключительном захвате PCM драйвера одним из клиентов.
Т.е. если аудио проигрывается через MPD то AirPlay получит отказ в доступе к PCM устройству.
Мне же нужно чтобы было возможно переключение между MPD и AirPlay по принципу «последний прав».
Полагаю чтобы это реализовать, потребуется встроить в ALSA драйвер собственный обработчик который и будет слушать запросы от клиентов и при попытке подключения освобождать PCM устройство.
Реально реализовать такой механизм переключения?
Имеются ли другие пути решения задачи?


Раз у тебя пульса, то зачем в альсу напрямую долбишься? Выбери уже что-то одно.

Если выбирать не хочешь, то узнай про плагин dmix.

Bfgeshka ★★★★★
()

1) Включаешь в Pulseaudio режим системного сервиса, настраиваешь сервисы на вывод через PA.

2) Либо убираешь Pulseaudio, пердолишь /etc/asound.conf на тему прав доступа и настраиваешь вывод в сервисах НЕ через hw:x,y.

anonymous
()
Ответ на: комментарий от anonymous

Насчет PulseAudio ошибся, в данной конфигурации он не применим.
Про dmix пишут, что он ухудшает качество звука, это также не подходит.

Можно подробней пояснить про настройку прав доступа и вывод в сервисах, как это работает?
Есть еще весьма недурственный Jack Server, это как я понял надстройка над ALSA, может быть возможно настроить через него?

Oxff
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.