OpenWRT и DLNA: Играем музыку на USB аудио

Category: OpenWRT
Posted on: 18.07.2021 в 15:24 - Комментариев нет - Visited 3647 times

В виду того, что мой принтер сломался, остался пустой USB на маршрутизаторе, решил поиграться со звуком.
К примеру, Windows Media Player умеет воспроизводить поток, который передаёт телефон (через DLNA или Airplay), всё здорово, давайте научим этому OpenWRT.
Для начала необходимо добыть USB-звуковую карту, на всем известном китайском сайте обнаружил такую за 99 центов, пока она ехала, изучал матчасть, поехали…

(Прошу учесть, что устанавливаемое ПО в маршрутизатор достаточно большое, необходимо иметь минимум 16 мегабайт флешку)

Изучаем сам процесс: телефон (DLNA transmiter) -> маршрутизатор -> upmpdcli (DLNA decoder) -> MPD Player -> ALSA -> Звуковая карта.
(ALSA — Advanced Linux Sound Architecture)

Теперь по каждому пункту отдельно:

Звуковая карта:

Подключаем звуковую карту, устанавливаем необходимые пакеты

kmod-usb-audio
kmod-sound-core

Проверяем: cat /proc/asound/cards, в ответ получаем нечто типа

 0 [Device         ]: USB-Audio - USB Audio Device
                      GeneralPlus USB Audio Device at usb-1e1c0000.xhci-1, full speed

Теперь нам нужно установить MPD Player и DLNA Render. Это основной проигрыватель, который будет воспроизводить звук. Есть несколько ревизий, нам нужна ревизия full, это и съедает основное место

mpd
upmpdcli

Теперь минимум настроек. Необходимо открыть файл конфигурации проигрывателя /etc/mpd.conf и найти нечто похожее «An example of an ALSA output» и раскоментировать весь этот блок, Получится нечто подобное:

# An example of an ALSA output:

audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
mixer_type "hardware" # optional # Изменить на "software" чтобы работал регулятор громкости в приложении
mixer_device "default" # optional
mixer_control "PCM" # optional
mixer_index "0" # optional
}

Сохраняем, перезагружаем маршрутизатор.

Приложение в телефоне может быть любое. я видел много DLNA — игралок, больше всего понравилась «Передача на Xcast ТВ». Открываем приложение, находим наш приёмник 🙂

Наслаждаемся 🙂

P.S.

Очень долго мучился чтобы появилась регулировка громкости из вещалки на телефоне. Уже даже добрался до исходников, которые гласили, что если это связка udmdcli + mpd, то идите лесом, демон сам умеет управлять громкостью и у кли громкость ставится 100%. Да, действительно, программным методом MPD умеет управлять громкостью, но почему нельзя было просто дописать маленькую строку в конфиг, как это сделал я???

Измените mixer_type «hardware»  на «software» если у вас повисает служба mpd, или просто перестаёт играть музыка. Тоже добавило несколько седых волос

Добавить комментарий

Включите изображения, чтобы увидеть вопрос *