Страница 1 из 1
VLC player, вывод инфы "Сейчас играет".
Добавлено: Вс апр 17, 2022 2:36 pm
krepton85
Как сделать вывод информации "сейчас играет:" из тегов mp3 потока в свойство объекта или хотя бы в WEB интерфейс VLC плеера, а дальше уже забирать с помощью "Веб-переменных" в свойство объекта. Просто есть часы-информер на светодиодной матрице ("бегущая строка") и хотелось бы туда выводить название трека радио-станции. Конечно я понимаю что это применимо только для mp3 потоков вещания, но все же.
Смотрите во вложениях что я имею ввиду.

- 2022-04-02_21-24-05.png (105.26 КБ) 1366 просмотров

- 2022-04-02_21-22-29.png (71.89 КБ) 1366 просмотров
Сейчас Веб-интерфейс VLC плеера выглядит так:

- 2022-04-17_14-35-06.png (66.04 КБ) 1366 просмотров
Re: VLC player, вывод инфы "Сейчас играет".
Добавлено: Вс апр 17, 2022 4:06 pm
tarasfrompir
Ну смотря где выводить... Если на сцене то это просто сделать скрипт запрашивающий играемое на терминале и вывести все это соответственно
Re: VLC player, вывод инфы "Сейчас играет".
Добавлено: Вт апр 19, 2022 2:19 am
xor
krepton85 писал(а): ↑Вс апр 17, 2022 2:36 pm
Как сделать вывод информации "сейчас играет:" из тегов mp3 потока в свойство объекта или хотя бы в WEB интерфейс VLC плеера, а дальше уже забирать с помощью "Веб-переменных" в свойство объекта. Просто есть часы-информер на светодиодной матрице ("бегущая строка") и хотелось бы туда выводить название трека радио-станции. Конечно я понимаю что это применимо только для mp3 потоков вещания, но все же.
Смотрите во вложениях что я имею ввиду.

- 2022-04-19_02-13-57.png (96.05 КБ) 1276 просмотров
вот это можно достать так с разбором xml
Код: Выделить всё
$url=gg('mainVLC.adr');// адрес плеера
$file=getURL($url.'/requests/status.xml',0,'',1111,0);
$xml = simplexml_load_string($file);
var_dump($xml);
Re: VLC player, вывод инфы "Сейчас играет".
Добавлено: Вс апр 24, 2022 5:27 pm
krepton85
Вот скрипт полный:
Код: Выделить всё
$url=gg('mainVLC.adr');// адрес плеера
$url= "";
$file = "";
if(gg('RadioSetting.PlayTerminal') == 'Acer_Aspire3'){
$url="http://192.168.1.140:8080";
$file=getURL($url.'/requests/status.xml',0,'',12345,0);
}
if(gg('RadioSetting.PlayTerminal') == 'vlc_majordomo'){
$url="http://192.168.1.126:7070";
$file=getURL($url.'/requests/status.xml',0,'',12345,0);
}
if(gg('RadioSetting.On') == 1){//если включено радио
$xml = simplexml_load_string($file);
//print('xml load: '. $xml. '</br>' );
ob_start();
var_dump($xml);
$buffer = ob_get_contents();
ob_clean();
print($buffer);
$str1 = '';
$start = strpos($file, 'now_playing', 0);
if($start != false){
print("Start pos = ". $start);
$end_pos = strpos($file, '</info>', $start);
print("</br> stop pos = ".$end_pos);
$str1 = substr($file, $start + 13, $end_pos - ($start + 13) );
}
else{
$start = strpos($file, 'filename', 0);
print("Start pos = ". $start);
$end_pos = strpos($file, '</info>', $start);
print("</br> stop pos = ".$end_pos);
$str1 = substr($file, $start + 10, $end_pos - ($start + 10) );
}
$str2 = str_replace('&','&', $str1);//исправление знака "&"
$str2 = str_replace(' ', '_', $str2);
print("</br> str1: ". $str1);//с пробелами
print("</br> str2: ". $str2);//без пробелов
sg('RadioSetting.сейчас_играет', $str2);
}else{
sg('RadioSetting.сейчас_играет', "");
}
с парсингом XML так и не разобрался, спарсил как обычный текст. Да и у разных треков / радиостанций либо есть, либо отсутствуют не которые параметры, например "жанр". А так работает в любом случае, если нету тегов (не mp3 поток например), то выводит имя файла. Только vlc почему то некоторые символы не правильно передает, например "&" отображает как "&" и апостроф " ` " тоже какую то фигню вместо его.