[Модуль] DLNA (app_dlna)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Dicont
Сообщения: 112
Зарегистрирован: Вс дек 17, 2017 11:24 pm
Благодарил (а): 34 раза
Поблагодарили: 11 раз

Re: [Модуль] DLNA

Сообщение Dicont » Вс фев 18, 2018 9:23 pm

Dicont писал(а):В URL можно локальный файл прописать?
mplayer /var/www/cached/voice/rh_3c08cec1ff80f3376019ba479d268438.wav >/dev/null 2>&1
Вот например то что последнее сказала Алиса
И cmd - туда что оправлять.
Нашел сорри pause unpause stop
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] DLNA

Сообщение nick7zmail » Вс фев 18, 2018 9:27 pm

Поправил, чтоб вкладка Данных не смущала - спрятал))
Локальный...хм...думаю нет...я туда только с инета ссылки закидывал...а так по идее туда надо в каком-то виде файлы из расшаренных dlna-библиотек закидывать надо. Пока не особо с этим эксперементировал...надо с телеком опыты ставить, а он пока занят =D.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] DLNA

Сообщение nick7zmail » Вс фев 18, 2018 9:34 pm

Dicont писал(а): Нашел сорри pause unpause stop
В 1 сообщение закинул, чтоб не терялись.
Последний раз редактировалось nick7zmail Вс фев 18, 2018 9:37 pm, всего редактировалось 1 раз.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Dicont
Сообщения: 112
Зарегистрирован: Вс дек 17, 2017 11:24 pm
Благодарил (а): 34 раза
Поблагодарили: 11 раз

Re: [Модуль] DLNA

Сообщение Dicont » Вс фев 18, 2018 9:36 pm

Свойства создались, Обьект был ранее создан.
URL добавил, а как на PLAY нажать?

sg ("MiSpeaker.cmd","play"); ?
В описании только pause unpause stop )
sg ("MiSpeaker.cmd","unpause"); ?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] DLNA

Сообщение nick7zmail » Вс фев 18, 2018 9:40 pm

playUrl - и есть play по сути.
Как только его выставляешь - начинает играть.

Почитай 1ое сообщение)) колонка виснет при попытке управления dlna-командами...причем не важно откуда - из хоум медиа сервера пробовал тоже самое делать - тоже виснет. Так что это не в модуле и не в библиотеке дело...скорее в самоё колонке. Т.е. если отправлял unpause к примеру - колонку надо перезагрузить.
Для эксперимента попробуй вставить в playUrl станцию http://ep128.hostingradio.ru:8030/ep128 (я хз что за станция...просто в примере каком-то находил).
Я на ней проверял - точно работало...проверь - чтобы у тебя тоже работало...и потом далее экспериментируй))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: [Модуль] DLNA

Сообщение directman66 » Вс фев 18, 2018 9:49 pm

Поле json бы расширить. А где увидеть адрес, порт, путь AVtransort? Телик LG отдает два uuid, и они кроме номера тут ничем не отличаются.

В общем телик никак не реагирует.

Вот мой код, на который регирует телик:
СпойлерПоказать

Код: Выделить всё

//вызов rs(dnlaplay, array('fn' =>$path);
$fn=$params['fn'];
if ($fn==""){$fn="http://192.168.1.31:32469/object/df4b8e517919aa1f643c/file.mkv";}

$luts=gg("9732d18b-48f1-7f50-2b02-463b0f37e9a7.timestamp");
$diff=(gmdate('i',trim(time()-$luts)));

$pattern = "|\b[0]+([1-9][\d]*)|is"; 
$diff2= preg_replace($pattern, "\\1", $diff); 
echo  "Информация  была обновлена  "  .$diff2 . " минут назад.";

if ($diff2>60) { echo "Запускаю обновление данных!"; rs('dnlasearch');}

$url=gg('9732d18b-48f1-7f50-2b02-463b0f37e9a7.LOCATION');
//$host=explode(":",$url)[0].explode(":",$url)[1];
$host=str_replace('/','',explode(":",$url)[1]);
//$host="192.168.1.41";
$port=str_replace('/','',explode(":",$url)[2]);
$controlURL=gg('9732d18b-48f1-7f50-2b02-463b0f37e9a7.controlURL');
echo 'host:'.$host."<br>";
echo 'port:'.$port."<br>";
echo 'controlURL:'.$controlURL."<br>";


//command:
//SetAVTransportURI
//Stop
//Play

//AVTransport
///AVTransport/9732d18b-48f1-7f50-2b02-463b0f37e9a7/control.xml
echo 'Stop<br>';
//Stop
$xml = '<?xml version="1.0" encoding="utf-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Stop xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Stop></s:Body></s:Envelope>
';
$asnw=sendpacket($host,$port,$controlURL,'Stop', $xml);
echo $asnw;
echo 'SetAVTransportURI<br>' ;
sleep(1);
//SetAVTransportURI
$xml = '<?xml version="1.0" encoding="utf-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI>'.$fn.'</CurrentURI><CurrentURIMetaData><DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:sec="http://www.sec.co.kr/" xmlns:pv="http://www.pv.com/pvns/"><item id="df4b8e517919aa1f643c" parentID="c104054e5a4c8c3c046e" restricted="1"><upnp:class>object.item.videoItem</upnp:class><dc:title>Aritmija Web Dl</dc:title><dc:creator>Unknown</dc:creator><upnp:artist>Unknown</upnp:artist><upnp:albumArtURI>http://192.168.1.31:32469/proxy/c9ccea0d9cf75f43c34b/albumart.jpg</upnp:albumArtURI><upnp:genre>Unknown</upnp:genre><res protocolInfo="http-get:*:video/x-matroska:DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000" bitrate="692000" nrAudioChannels="6" size="4810724267" resolution="1920x1038" duration="1:55:52.000">'.$fn.'</res></item></DIDL-Lite></CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>
';
$asnw=sendpacket($host,$port,$controlURL,'SetAVTransportURI', $xml);
echo $asnw;
echo 'Play<br>';
sleep(1);
//Play
$xml= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Speed>1</Speed></u:Play></s:Body></s:Envelope>
';
$asnw=sendpacket($host,$port,$controlURL,'Play', $xml);
echo $asnw;




function sendpacket($host,$port,$AVTransport, $command, $xml){
///play
$body=$xml;
$headers = 'POST '.$AVTransport.' HTTP/1.1
Soapaction: "urn:schemas-upnp-org:service:AVTransport:1#'.$command.'"
CONTENT-TYPE: text/xml; charset="utf-8"
HOST: '.$host.':'.$port;
$content=$headers . '
Content-Length: '. strlen($body) .'

'. $body;
echo $host.":". $port;
$fp = fsockopen($host, $port , $errno, $errstr, 10);
        if (!$fp)
        {echo "Error opening socket: ".$errstr." (".$errno.")<br>";} else 
        {            
$ret = "";
$buffer = "";
         
//        fputs ($fp, $content);
//        while (!feof($fp)) {
//            $buffer = fgets($fp,128);
//            echo "\n;" . $buffer . ";\n"; 
//            $ret.= $buffer;

fwrite($fp, $content);
//while (!feof($fp)) {
//$buffer = fgets($fp,128);
//echo fgets($fp, 128);
//$ret.= $buffer; 
//    }
    fclose($fp);
        }

// echo "\n\nReturn:" . $ret . "!!\n";

fclose($fp); 
 return $ret;
 }
Последний раз редактировалось directman66 Вс фев 18, 2018 9:54 pm, всего редактировалось 1 раз.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] DLNA

Сообщение nick7zmail » Вс фев 18, 2018 9:54 pm

Json data проще копирнуть в notepad++ и там смотреть.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] DLNA

Сообщение nick7zmail » Вс фев 18, 2018 9:55 pm

У меня телек вообще 3 отдаёт uuid...потеститьпока на нем нет возможности...пути порты и т.п. Скорее всего в json таки зашиты должны быть.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: [Модуль] DLNA

Сообщение directman66 » Вс фев 18, 2018 9:56 pm

nick7zmail писал(а):Json data проще копирнуть в notepad++ и там смотреть.
как пожеление: распарсить и показать в удобном виде!
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: [Модуль] DLNA

Сообщение directman66 » Вс фев 18, 2018 9:56 pm

Может какой лог вывести, что отдается в телик/колонку? Режим дебага. Очень будет нужен для отладки устройств.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Ответить