[SLOT_0]; только для нулевого слота
mode = opusLAN

Описание

Программный модуль для приёма и воспроизведения аудио потока по локальной сети через протокол RTP (multicast) с декодированием кодека Opus. Позволяет выбирать группу и канал вещания, управлять громкостью и состоянием воспроизведения. В отличие от audioLAN, принимает сжатый аудиопоток в формате Opus, что значительно снижает требования к пропускной способности сети.

ПараметрЗначение
ПротоколRTP multicast
КодекOpus
Самплрэйт48000 Hz (настраиваемый, 8000–96000)
Разрядность16 бит
Каналы2 (стерео)

Совместимость

Принцип работы

Модуль подключается к multicast-группе по адресу 239.0.{group}.{channel} на заданном порту и воспроизводит входящий аудио поток, закодированный кодеком Opus. Аудио пайплайн состоит из трёх элементов: RTP-приёмник → Opus-декодер → I2S-выход. При запуске ожидает инициализации сетевого интерфейса. Рапортует текущее состояние, канал и громкость. Требуется подключение к локальной сети (LAN).

Рекомендуемое ПО

Для трансляции аудио потока в формате Opus по сети рекомендуется использовать приложение antiDante.

Топик

Стандартный топик событий и действий:

  • “deviceName/opusLAN_{slot_num}” - {slot_num} номер слота
    • пример: “deviceName/opusLAN_0”

Опции

Доступные опции:

  • defaultState - число(int), состояние модуля при включении (0 — выкл, 1 — вкл). По умолчанию 1.
  • volume - число(int), уровень громкости, от 0 до 100. По умолчанию 100.
  • group - число(int), номер группы multicast-адреса (третий октет: 239.0.X.0), от 0 до 255. По умолчанию 7.
  • channel - число(int), номер канала multicast-адреса (четвёртый октет: 239.0.7.X), от 0 до 255. По умолчанию 0.
  • port - число(int), номер UDP-порта для приёма потока, от 0 до 65535. По умолчанию 7777.
  • sampleRate - число(int), частота дискретизации в Гц, от 8000 до 96000. По умолчанию 48000.
  • bufSize - число(int), размер буфера приёма в байтах, от 256 до 8192. По умолчанию 2048.
  • topic - строка, нестандартный топик событий и действий.

Команды

  • /setState — включение/выключение воспроизведения, возможные значения 0-1.
    • Пример: “moduleBox/opusLAN_0/setState:1
  • /setChannel — переключение канала (четвёртый октет multicast-адреса), значение от 0 до 255.
    • Пример: “moduleBox/opusLAN_0/setChannel:5
  • /setVolume — установка уровня громкости, значение от 0 до 100.
    • Пример: “moduleBox/opusLAN_0/setVolume:80

События

  • /state — рапортует текущее состояние модуля (0 — выкл, 1 — вкл). Пример: “moduleBox/opusLAN_0/state:1
  • /volume — рапортует текущий уровень громкости. Пример: “moduleBox/opusLAN_0/volume:80
  • /channel — рапортует текущий номер канала. Пример: “moduleBox/opusLAN_0/channel:5

Индикация

  • Светодиод выключен — модуль в состоянии DISABLE.
  • Светодиод горит постоянно — модуль включён, поток принимается.
  • Светодиод мигает — модуль включён, но поток не обнаружен.

Примеры

Переключение каналов через кнопки:

[SLOT_0]
mode = opusLAN
options = empty
options = volume:100, channel:0
 
[SLOT_1]
mode = button_led
options = empty
;переключение между каналами 0 и 1
crosslink = button_1:1->opusLAN_0/setChannel:1, button_1:0->opusLAN_0/setChannel:0

Подробнее об использовании crossLink