Для @dimas
и остальных, кому это может пригодиться,
рендерер 2.05 с http-интерфейсом, который можно интегрировать с авторскими оболочками.
Для PC x64:
http://albumplayer.ru/linux/test/renderer_se_x64.tar.gz
Для arm32:
http://albumplayer.ru/linux/test/renderer_se_arm32.tar.gz
Рендерер открывается по порту 7777. Конфигуратор аналогичен версии 2.05.
Управление http-командами.
Есть два основных режима - либо загружается ссылка на воспроизводимый файл и опционально на следующий (gapless поддерживается),
либо загружается список треков, который может автономно долго воспроизводиться (этим процессом тоже можно управлять).
В комплекте две демо-странички, иллюстрирующих работу с обоими вариантами:
http://localhost:7777/demo.html - работа с отдельными файлами
http://localhost:7777/demo2.html - работа со списком
Там ввод команд доступен через кнопки и выводится листинг переменных состояния рендерера.
Команды:
/play=url - воспроизведение потока по указанному url или локального файла, если передан файловый путь.
/next=url - ссылка на следующий файл, которую можно загрузить в любой момент после старта воспроизведения. В принципе, можно обходиться этой командой,
поскольку она работает как play, если play не было, и передать следующий файл можно и по окончании воспроизведения.
Когда трек кончается рендерер не завершает основной поток воспроизведения, а ждёт либо следующей ссылки, либо команды “стоп”.
/end - команда “стоп” для воспроизведения (не путать со /stop, которая уже зарезервирована на выгрузку самого рендерера).
/pause - пауза. Можно явно включать или выключать /pause=1 и /pause=0. Без параметра переключает состояние на противоположное.
/seek=секунды - позиционирование по треку.
/volume=число в диапазоне 0-100 - управление громкостью, когда включена в настройках опция контроля громкости.
Для загрузки списка треков (плейлиста) по адресу /list загружается методом POST в формате JSON массив треков, сохраненный под именем “list”.
Как это сделать из JavaScript, есть в коде страницы demo2.html.
/track=индекс трека от 0 до n-1 - старт воспроизведение трека с указанным индексом из плейлиста. Переходы на следующие треки выполняются автоматически.
На странице demo2.html надо вводить индекс трека из списка в поле ввода, потом нажимать Play.
/forward - переключение на следующий трек в загруженном плейлисте.
/back - переключение на предыдущий трек в плейлисте.
/?state - запрос состояния рендерера. Возвращается json объект со следующим набором переменных:
playing - воспроизведение да/нет
paused - пауза да/нет
preloading - идёт предзагрузка трека в режиме Full Memory
waiting - рендерер закончил воспроизводить текущий трек и ждёт следующего
bps - разрядность воспроизводимого потока (исходника)
freq - частота дискретизации воспроизводимого потока (исходника)
nch - число каналов исходника.
vol - текущее установленное значение громкости.
pos - текущая позиция воспроизведения.
len - длина воспроизводимого трека в секундах.
url - путь к воспроизводимому треку.
items - число треков плейлиста.
item - индекс воспроизводимого трека
artist - исполнитель (из метаданных)
album - альбом (из метаданных)
year - год (из метаданных)
title - имя трека (из метаданных)
fulltitle - сводная строка метаданных (для каналов радио почти всегда только она и доступна)
error - последнее из сообщений об ошибках (отдаётся один раз, после чего сбрасывается).
Метаданные запрашиваются асинхронно, поэтому их прочитывать надо чуть позже старта трека.
Команда /update обновляет метаданные по запросу, что актуально для радиотрансляций.
Этот рендерер поддерживает и конвольвер, но соответствующая вкладка в меню появится, если добавить папку cfilters с фильтрами конвольвера.