udvnl

 
<<< Назад

Установка плеера VLC и использование модуля Internet Radio

Небольшая заметка по настройке VLC и использование модуля Online Radio

В этой статье речь пойдёт о плеере VLC и использовании модуля Online Radio.

В первую очередь нужно опредилиться что будем использовать в качестве устройства для воспроизведения
У меня в качестве вывода звука - USB колонки, возможно использование и Audio 3,5 jack. В случае использования последнего - настройка немного упрощается.
Определяем на каком устройстве опредилилися USB колонки
(у меня в RPi устройство 0 - Audio3,5 bcm2835_headpho - bcm2835 Headphones , 1 - vc4-hdmi - vc4-hdmi, 2 - USB-Audio - ST200, на тестовой малинке очередность устройств изменена, так что проверяйте).

cat /proc/asound/cards 
aplay -l

Проверка воспроизведения звука, средствами ОС:

speaker-test -Dplughw:0,0 –c2

Где 0,0 – номер карты и устройства в системе, с-2 – количество кналов. Слышим поочередно звук в правом - левом динамике. Выход из проверки ctrl +C.
Вызов утилиты для настройки звука:

alsamixer

Проверка воспроизведения файлов встроенными средствами ОС:

mplayer /var/www/html/cms/sounds/dingdong.mp3
aplay /var/www/html/3rdparty/googleblockly/media/disconnect.wav

Установка VLC плеер, поддерживаемого MajorDoMo

sudo apt-get install -y vlc

Создать файл автозагрузки описания сервиса VLC на порту 7777 с паролем (имя пользователя - пустое поле)

sudo nano /etc/systemd/system/vlcd.service

Содержимое файла (в файле две строки запуска одна для аналогового выхода, вторая, как у меня для USB устройства (закоментирована):

 [Unit]
Description=VLCDaemon

[Service]
Requires=majordomo.service
Type=simple
WorkingDirectory=/var/www/html
#строка запуска с использованием разъема 3,5 jack для подключения аналоговых колонок
ExecStart=/usr/bin/vlc --quiet --intf dummy --extraintf http --http-password 12345 --http-port 7777 --http-host 0.0.0.0 --no-interact>
#строка запуска с использованием USB колонок или USB звуковой карты, hw:2,0 адрес аудио устройства в ОС (проверка правильности с помощью команды aplay -l) 
# ExecStart=/usr/bin/vlc --quiet --intf dummy --extraintf http --http-password 12345 --http-port 7777 --http-host 0.0.0.0 --no-interact> --aout alsa --alsa-audio-device hw:2,0
Restart=always
User=www-data
Group=www-data
[Install]
WantedBy=multi-user.target

Перечитать автозагрузрчные юниты, добавить vlc в автозагрузку, запустить сервис vlcd и проверка работы сервиса:

sudo systemctl daemon-reload
sudo systemctl enable vlcd
sudo systemctl start vlcd
sudo systemctl status vlcd

Вывод должен быть без ошибок, сейчас переходим к MajorDoMo

Модуль Online Radio

В маркете приложение панели управления устанавливаем дополнение от LuckyFIA Online Radio

Переходим в приложения: Панель Управления – Приложения - Internet radio
Модуль пока пустой, только краткая помощь (информация) по его работе.
Для его использования нам необходимо указать ссылки на трансляции и настройть терминал для воспроизведения.
перейдём к превому условия, ссылка натрансляцию, довольно часто спрятана на сайте радиостанции или на сайте агрегатора радиостанций. Что просто и быстро её получить открываем сайд р/с к примеру: https://radiopotok.ru/ https://radiopotok.ru/avtoradioby
Нажимаем F12 (входим в режим отладки), PLAY (воспроизведение трансляции) далее Ctrl+F5 (обновление страницы)
Ищем данные сети, обычно самые большие по размеру – искомая ссылка на трансляцию. Копируем эту ссылку (для проверки можно открыть в новом окне браузера – запуститься плеер браузера).

Для повторения примера данные с другого сайта:

Сейчас у нас есть две радиостанции добавленные в модуль Радио.

Осталось настроить терминал (пусть для воспроизведения радио MAIN - главный терминал сервера УД)
Панель Управления - Настройки - Терминалы
в настройках указываем:
Системное имя MAIN, Название Server, Хост (адрес): localhost

тип плеера: VLC через HTTP
порт доступа к плееру: 7777 (тот который ранее был указан в Unit файле)
имя пользователя - не задаём, т.к. его не указывали
пароль: 12345 (тот который ранее был указан в Unit файле)

Сохраняем, теперь радио должно работать, управляться с главной странице нашего УД.

Перейдём к заметка о управлению радио через физическое устройство.
Многое указано в самом модуле и всё делается относительно просто.
У меня реализовано на кнопке с транскодером Tuya Smart Knob
простое нажатие используем метод Switch - запуск/остановка воспроизведения радио. Нужно настроить методы Turn On и Turn Off устройства для управления ( в каждом методе прописываем соответствующию строку). Для включения у меня стоит ограничение громкости 35.

cm('RadioSetting.Control', array('play','vol'=>35));
cm('RadioSetting.Control', array('stop'));

Далее сделаем действие (я делал доп виртуальное устройство), при котором будет переключение станции на следующую. Станции должны идти по порядку ID без прерываний. В строках таблицы app_radio (легче их сортировать в phpMyAdmin в случае удаления и добавления новой станции, автоматически присваевается не свободное ID, а следующее по списку). Свой рабочий код сейчас прогнал через ИИ, получил несколько лучший, привожу его.

// Получаем текущий ID последней включённой станции
$lastID = (int)gg('RadioSetting.LastStationID');

// Считаем общее количество станций
$countRow = SQLSelectOne('SELECT COUNT(*) AS cnt FROM `app_radio`');
$totalCount = (int)$countRow['cnt'];

// Если станций нет — ничего не делаем
if ($totalCount < 1) {
    say('Нет станций в списке', 1);
    return;
}

// Вычисляем следующий ID с зацикливанием
$nextID = $lastID + 1;
if ($nextID > $totalCount) {
    $nextID = 1;
}

// Сохраняем новый ID
sg('RadioSetting.LastStationID', $nextID);

// Получаем название станции по ID
$station = SQLSelectOne('SELECT `name` FROM `app_radio` WHERE `ID` = ' . (int)$nextID . ' LIMIT 1');

// На случай, если запись пропала — берём первую станцию
if (!$station || !isset($station['name']) || $station['name'] === '') {
    $station = SQLSelectOne('SELECT `name` FROM `app_radio` ORDER BY `ID` LIMIT 1');
}

$stationName = $station['name'] ?? '';

if ($stationName !== '') {
    cm('RadioSetting.Control', array('sta' => $stationName));
    say($stationName, 1);
} else {
    say('Не удалось получить название станции', 1);
}

Т.к. кнопка имеет энкодер (вращение), то в ПУ добавил 2 метода Vol+ (приведен код, для Vol- меняем знак и указываем min громкость):

// 1. Получаем текущую громкость (гарантируем целое число)
$vol = (int)gg('ThisComputer.volumeMediaLevel');

// 2. Устанавливаем лимит и шаг
$step = 3;
$maxVol = 50;

// 3. Вычисляем новую громкость с ограничением сверху
$new_vol = min($maxVol, $vol + $step);

// 4. Сохраняем в глобальную переменную
setGlobal('ThisComputer.volumeMediaLevel', $new_vol);

// 5. Отправляем команду в модуль Online Radio
cm('RadioSetting.Control', array('vol' => $new_vol));

// 6. Голосовое подтверждение
say('Громкость радио ' . $new_vol, 1);

На этом всё, VLC для проигрывания радио меня вполне устраивает, в качестве медиа плеера, мне он не зашел. Как нибудь продолжу по медиа плееру (на основе mpd).

Обсуждение (0) (0)

Смотрите так же:
24.01.2025 Zigbee2mqtt 2025 (2.0) небольшое описание по установке
21.06.2024 Послеустановочные заметки
21.05.2024 RHVoice установка, проверка и прочее
03.11.2023 Пару мыслей о совместном применении SIP телефонии и систем «Умного Дома», а также немного об организации независимого от Internet канала связи с УД.
14.10.2023 Контроль SystemD и инструмент работы с системными логами через веб браузер
10.10.2023 Установка SIP сервера FreeSWITCH 1.10.10 на Raspberry Pi OS Lite (Debian11)
03.01.2023 Установка MajorDoMo с помощью скрипта от SergeJey на Raspberry Pi
09.12.2022 Где Телефон?
30.05.2022 Вариант установки Majordomo на Windows 10 с использованием пакета XAMPP. Немного о переносе и создании тестовой копии системы с Raspberry PI на Windows
09.03.2022 Небольшие заметки по подключению и использованию сервиса CONNECT
27.02.2022 Zigbee2mqtt, немного о стиках CC2531 и Sonoff USB Zigbee 3.0 Dongle Plus (сравнение, подключение, тестирование).
23.09.2021 Второй раз в первый класс. Часть 1: начало работы c базовым образом для RPi.
31.12.2020 Возможность создания канала управления через телефонные сети для системы домашней автоматизации.
06.07.2020 Чтение файлов из образа img Операционной системы. Возможность записи образа на меньшую по размеру SD карту памяти
19.06.2020 Raspberry Pi: немного о резервном копировании и актуальной копии системы
07.05.2020 Установка VoIP сервера FreeSWITCH с частичной интеграцией в систему MajorDoMo
28.04.2020 Установка базового образа MajorDoMo на Raspberry Pi. Начало первые шаги.
07.10.2019 Возможность создания видео звонков у MajorDoMo (RPI +WebCam)
11.09.2019 Создание голосового оповещения MajorDoMo
21.08.2019 Установка USB аудиокарты и настройка звука в Raspberry Pi
04.04.2019 Сертификация в Z-Wave
11.03.2019 RPI Monitor полезное ПО для Raspberry PI и Orange Pi
04.02.2019 Тестирование пропускной способности канала Ethernet (Wi-Fi) с помощью утилиты IPerf
23.12.2018 Пошаговая инструкция с картинками по установки MajorDoMo на Raspberry Pi 3 с помощью скрипта от Immortal
20.10.2018 Установка Freeswitch 1.8.2 на Debian 9 (Raspbian Stretch) на базовый образ системы «Умного дома» MajorDomo
14.08.2018 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение первого устройства Z-Wave и первые шаги по автоматизации
08.07.2018 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение контроллера RaZberry и первые шаги по Z-Wave
29.06.2018 Пошаговая инструкция по установке образа Majordomo на Raspberry Pi
21.06.2018 Удаленное наблюдение за близкими, но к сожалению, больными людьми.

Минск, Беларусь

На форуме: udvnl