[SLOT_0] ;только нулевой слот
mode = wavPlayer

Программный модуль проигрывателя аудиофайлов формата .wav. Формат без сжатия — меньше нагрузка на процессор, больше объём файлов.

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

Модуль работает только в нулевом слоте.

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

При запуске контроллер сканирует файловую систему, находит аудиофайлы формата .wav и сортирует их в алфавитном порядке. Дальше файлы проигрываются по номеру в этом списке; по окончании трека модуль рапортует событие endOfTrack.

Нумерация треков начинается с нуля.

Опция playToEnd запрещает прерывать играющий трек новой командой, playDelay добавляет паузу перед стартом, attenuation задаёт время плавного затухания громкости при остановке.

Поддерживаемый формат.wav
Самплрейт44100 Гц
Количество каналов2

Топики

База топика события:

  • <deviceName>/player_<slot> — например moduleBox/player_0

База топика действия:

  • <deviceName>/player_<slot> — например moduleBox/player_0

Полный топик — база плюс направление и имя: moduleBox/player_0/action/play.

Опции

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

  • volume — число(int), громкость. Диапазон 0–100. По умолчанию 70.
  • speed — число(float), скорость воспроизведения. Диапазон 0.1–3.0. По умолчанию 1.09.
  • tone — число(float), сдвиг тональности без изменения скорости. Диапазон 0.1–3.0. По умолчанию 1.0.
  • eqLow — число(int), нижняя граница эквалайзера. Диапазон -20–0. По умолчанию -13.
  • eqMid — число(int), средняя граница эквалайзера. Диапазон -20–0. По умолчанию -13.
  • eqHigh — число(int), верхняя граница эквалайзера. Диапазон -20–0. По умолчанию -13.
  • attenuation — число(int), период затухания громкости в мс (0 — выключено). Если во время затухания приходит play с текущим треком, воспроизведение продолжается. Диапазон 0–10000. По умолчанию 0.
  • playDelay — число(int), пауза перед проигрыванием в мс. Диапазон 0–4096. По умолчанию 0.
  • playToEnd — флаг, проигрывать до конца.
  • disableOnStart — флаг, стартовать в выключенном состоянии и ждать action/enable со значением 1. По умолчанию модуль активен сразу.

События

ТопикPayloadОписание
player_<slot>/event/endOfTrackцелоеНомер трека, воспроизведение которого завершилось
player_<slot>/event/enable0 / 1Активен 1 или спит 0

Пример: топик moduleBox/player_0/event/endOfTrack, payload 2.

Команды

ТопикPayloadОписание
player_<slot>/action/playцелое, +N / -N, random или #Проиграть трек: номер, приращение +N / -N, random или # — текущий
player_<slot>/action/stop—Остановить воспроизведение
player_<slot>/action/shiftцелое, +N / -N или randomСдвинуть указатель трека без запуска воспроизведения
player_<slot>/action/setVolume0–100Установить громкость
player_<slot>/action/enable0 / 1Включить (1) или выключить (0) модуль

Пример: топик moduleBox/player_0/action/play, payload +1.

Примеры

[SLOT_0]
;модуль в режиме проигрывателя
mode = wavPlayer
;громкость 95%, задержка перед стартом полсекунды
options = volume:95, playDelay:500
;по завершении любого трека проиграть следующий
crosslink = player_0/event/endOfTrack:#->player_0/action/play:+1

Спецсимволы # и @ описаны на странице crossLink.

[SLOT_0]
mode = wavPlayer
options = volume:80, playToEnd, attenuation:1500
 
[SLOT_1]
mode = button_led
;нажатие запускает случайный трек, длинное нажатие останавливает
crosslink = button_1/event/press:1->player_0/action/play:random, button_1/event/longPress:1->player_0/action/stop:1

Подробнее — внутренние связи (crossLink).

Архив

Описание модуля для прошивок до перехода на конституцию — wavPlayer (архив).