RasberryPi A2DP Sink - проблема с паузой (PulseAudio, Bluez)

Я пытаюсь создать приемник Bluetooth A2DP (приемник), а затем вывести звук в радиопоток vorbis (только для локальной сети). По сути, я хочу это как дополнение для Bluetooth к многокомнатной музыкальной системе squeezebox (squeezelite). Радиопередатчик A2DP-Sink-Radio - это автономный Raspberry Pi, который можно легко добавить в любую систему. Я относительно новичок в Linux.

Я уже достиг рабочей настройки, но все падает, когда я приостанавливаю звук на источнике bluetooth (телефоне).

Настройка: Bluetooth Phone -> Получено Bluez/PulseAudio [PA] -> Источник PulseAudio Bluez через "петлю модуля" PA на звуковую карту ALSA Sink -> Darkice для кодирования потока vorbis с использованием pulseaudio в качестве источника (устройство = импульс) -> Icecast2 для трансляции

Это работает хорошо, но когда я приостанавливаю телефон, поток (как получено VLC/Squeezebox) останавливается (отметка времени перестает тикать). Возобновление аудио дает огромную задержку (я думаю, что это та же самая длина, что и длительность паузы). После длительных пауз поток может не возобновиться. Darkice четко видит, что аудиовход остановлен.

Я думаю, мне нужно сказать PulseAudio, чтобы как-то замолчать паузу. Я попытался проложить путь через манекен ALSA (snd-dummy), это просто давало постоянный шум. Я не мог заставить Джек работать.

Darkice может взять следующие источники: OSS, ALSA и JACK.

Пожалуйста, помогите, я оооочень близко!

2 ответа

У меня была точно такая же проблема, за исключением того, что я передавал bluetooth моего телефона на Sonos с помощью Raspberry Pi, и Sonos отключался от сервера Icecast всякий раз, когда аудиопоток Darkice bluetooth прерывался. Я попробовал liquidsoap, но не смог распознать мой поток bluealsa, поэтому я начал экспериментировать с резервными потоками в файле конфигурации Icecast2.xml и обнаружил, что если вы кодируете односекундный файл без звука в формате mp3 и даете ему то же имя, что и поток Darkice и назначить его в качестве основной точки монтирования, поток никогда не прерывается. https://www.instructables.com/id/Play-Bluetooth-on-Sonos-Using-Raspberry-Pi/

Я нашел решение.

Я удалил Darkice и использую liquidsoap для создания потока vorbis. У этого есть опция mksafe(), которая отправит тишину, если входящий источник звука не доступен. Точно так, как я хотел!

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