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

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

Модератор: immortal

directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: [Модуль] DLNA

Сообщение directman66 » Сб фев 24, 2018 8:28 pm

nick7zmail писал(а):Знаю)) выковыривал значки откуда мог)) даже у тех девайсов, у которых в описании нет presentationURL))) Ща бум пакеты снифить, смотреть что куда шлёт.
Не все картинки показывает)Изображение


Synology картинку не отображает.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] DLNA

Сообщение nick7zmail » Сб фев 24, 2018 8:33 pm

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

Re: [Модуль] DLNA

Сообщение nick7zmail » Сб фев 24, 2018 9:10 pm

Хах))) оказывается библиотека jalder-а не такая печальная, как я думал...включил через bubble upnp какую-то музычку - на телеке начало играть...через cmd в модуле выставляю pause, unpause - работает Оо...stop правда странно отрабатывается - переключает на следующую песенку))...но не суть...пожалуй остальные команды надо вписать в обработчик....ну типа volup voldwn next prev и т.д. , чтобы можно было МД пользоваться хотя бы как dlna-пультом.
Осталось разобраться с тем - что она не так делает при "засылке" ссылки на воспроизведение.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

Re: [Модуль] DLNA

Сообщение Jilber » Сб фев 24, 2018 9:43 pm

Тоже не везде показывает иконки:
СпойлерПоказать
1.jpg
1.jpg (53.87 КБ) 3428 просмотров
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] DLNA

Сообщение nick7zmail » Сб фев 24, 2018 10:04 pm

А что выводит скрипт
СпойлерПоказать

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

require_once(DIR_MODULES.'/app_dlna/upnp/vendor/autoload.php');
use jalder\Upnp\Upnp;
    $upnp = new Upnp();
    $everything = $upnp->discover();
    $result = [];
    foreach ($everything as $device) {
        if (!array_search_result($result, 'UUID', $device['description']['device']["UDN"])) {
            $result[] = [
                "TITLE" => $device['description']['device']["friendlyName"],
                "UUID" => $device['description']['device']["UDN"],
                "LOGO" => getDefImg($device),
                "JDATA"=>$device
            ];
        }
    }
print_r($result);

function array_search_result($array, $key, $value)
{
    foreach ($array as $k => $v) {
        if (array_key_exists($key, $v) && ($v[$key] == $value)) {
            return true;
        }
    }
}
function getIp($dev)
{
    $result = explode(":", $dev['description']['device']["presentationURL"])[1];
    return str_replace("//", "", $result);
}
function getDefImg($dev)
{
    if($dev['description']['device']["presentationURL"] && $dev['description']['device']["iconList"]["icon"]["0"]["url"]) {
        $img_url = substr($dev['description']['device']["presentationURL"], 0, -1). $dev['description']['device']["iconList"]["icon"]["0"]["url"];
    } elseif ($dev['description']['device']["iconList"]["icon"]["0"]["url"]) {
        $img_url = str_replace('\\','', $dev["location"]);
        $parsed_url = parse_url($img_url);
        $img_url = $parsed_url['scheme'].'://'.$parsed_url['host'].':'.$parsed_url['port'].$dev['description']['device']["iconList"]["icon"]["0"]["url"];
    } elseif ($dev['description']['device']["manufacturer"] == "Google Inc." && $dev['description']['device']["modelName"] == "Eureka Dongle") {
        $img_url = "/templates/app_dlna/img/chromecast.png";
    } elseif (($dev['description']['device']["manufacturer"] == "LG Electronics." || $dev['description']['device']["manufacturer"] == "LG Electronics") && ($dev['description']['device']["modelName"] == "LG TV" || $dev['description']['device']["modelName"] == "LG Smart TV")) {
        $img_url = "/templates/app_dlna/img/tv.png";
    } elseif ($dev['description']['device']["manufacturer"] == "Synology" || $dev['description']['device']["manufacturer"] == "Synology Inc") {
        $img_url = "/templates/app_dlna/img/synology.png";
    } elseif ($dev['description']['device']["manufacturer"] == "Emby" && $dev['description']['device']["modelName"] == "Emby") {
        $img_url = $dev["presentationURL"] . $dev["iconList"]["icon"]["4"]["url"];
    } elseif ($dev['description']['device']["manufacturer"] == "Linksys" || $dev['description']['device']["manufacturer"] == "Cisco") {
        $img_url = "/templates/app_dlna/img/router.png";
    } elseif ($dev['description']['device']["manufacturer"] == "XBMC Foundation") {
        $img_url = "/templates/app_dlna/img/kodi.png";
    }elseif ($dev['description']['device']["manufacturer"] == "Bubblesoft") {
        $img_url = "/templates/app_dlna/img/bubleupnp.png";
    }elseif ($dev['description']['device']["manufacturer"] == "BlackBerry") {
        $img_url = "/templates/app_dlna/img/blackberry.jpg";
    }elseif ($dev['description']['device']["manufacturer"] == "ASUSTeK Corporation" || $dev['description']['device']["manufacturer"] == "ASUSTeK Computer Inc.") {
        $img_url = "/templates/app_dlna/img/ASUSRouter.png";
    }elseif ($dev['description']['device']["manufacturer"] == "HIKVISION") {
        $img_url = "/templates/app_dlna/img/cam.png";
    }elseif ($dev['description']['device']["manufacturer"] == "Samsung Electronics") {
        $img_url = "/templates/app_dlna/img/samsung.png";
    }  else  {
        $img_url = "/templates/app_dlna/img/unk.png";
    }
    return $img_url;
}
 
Интересуют поля location icon и presentationURL у устройства, которое не отобразилось.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

Re: [Модуль] DLNA

Сообщение Jilber » Сб фев 24, 2018 10:29 pm

nick7zmail писал(а):А что выводит скрипт
Интересуют поля location icon и presentationURL у устройства, которое не отобразилось.
Скрипт выдаёт ошибку "Warning: socket_recvfrom(): in C:\_majordomo\htdocs\modules\app_dlna\upnp\vendor\jalder\upnp\src\Core.php on line 33"
Полей location icon и presentationURL в ответе не нашёл.
Нашёл в ответе скрипта такую строку: "http://192.168.100.4:49154CP_logo_0.png". Поставил пропущенный "/" - по ссылке видна иконка телевизора.
Последний раз редактировалось Jilber Сб фев 24, 2018 10:38 pm, всего редактировалось 1 раз.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] DLNA

Сообщение nick7zmail » Сб фев 24, 2018 10:37 pm

Ошибка да...у меня тоже вылетает...тем не менее после неё кучу текста пишет...
Судя по адресу картинки - как-то неправильно обрезка url отработала....либо / пропущен, либо вообще ip и порт неправильный подцепился.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

Re: [Модуль] DLNA

Сообщение Jilber » Сб фев 24, 2018 10:39 pm

nick7zmail писал(а):после неё кучу текста пишет...
СпойлерПоказать
Array ( [0] => Array ( [TITLE] => FriendlyNameHere [UUID] => uuid:00000000-0000-1000-0000-101b5467a698 [LOGO] => /templates/app_dlna/img/unk.png [JDATA] => Array ( [http] => HTTP/1.1 200 OK [cache-control] => max-age=1801 [date] => Sat, 24 Feb 2018 22:34:59 GMT [ext] => EXT: [location] => http://192.168.100.1:49152/wps_device.xml [server] => Unspecified, UPnP/1.0, Unspecified [st] => upnp:rootdevice [usn] => uuid:00000000-0000-1000-0000-101b5467a698::upnp:rootdevice [description] => Array ( [specVersion] => Array ( [major] => 1 [minor] => 0 ) [device] => Array ( [deviceType] => urn:schemas-wifialliance-org:device:WFADevice:1 [friendlyName] => FriendlyNameHere [manufacturer] => Mfgr Name Here [manufacturerURL] => http://manufacturer.url.here [modelDescription] => Model description here [modelName] => Model Name Here [modelNumber] => Model Number Here [modelURL] => http://model.url.here [serialNumber] => Serial Number Here [UDN] => uuid:00000000-0000-1000-0000-101b5467a698 [UPC] => upc string here [serviceList] => Array ( [service] => Array ( [serviceType] => urn:schemas-wifialliance-org:service:WFAWLANConfig:1 [serviceId] => urn:wifialliance-org:serviceId:WFAWLANConfig1 [SCPDURL] => wps_scpd.xml [controlURL] => wps_control [eventSubURL] => wps_event ) ) ) ) ) ) [1] => Array ( [TITLE] => Philips TV [UUID] => uuid:F00DBABE-AA5E-BABA-DADA-188ED5B777EF [LOGO] => nmr.htmCP_logo_0.png [JDATA] => Array ( [http] => HTTP/1.1 200 OK [cache-control] => max-age=1800 [date] => Sat, 24 Feb 2018 19:34:57 GMT [ext] => EXT: [location] => http://192.168.100.4:49153/nmrDescription.xml [server] => Linux2.6/0.0 UPnP/1.0 PhilipsIntelSDK/1.4 DLNADOC/1.50 [st] => upnp:rootdevice [usn] => uuid:F00DBABE-AA5E-BABA-DADA-188ED5B777EF::upnp:rootdevice [content-length] => 0 [description] => Array ( [specVersion] => Array ( [major] => 1 [minor] => 0 ) [device] => Array ( [deviceType] => urn:schemas-upnp-org:device:MediaRenderer:1 [friendlyName] => Philips TV [manufacturer] => Philips [manufacturerURL] => http://www.philips.com [modelDescription] => UPnP Media Renderer 1.0 [modelName] => TV2012HE [modelNumber] => 1.0 [modelURL] => http://www.philips.com/ [serialNumber] => 12345 [UDN] => uuid:F00DBABE-AA5E-BABA-DADA-188ED5B777EF [UPC] => 123456789012 [iconList] => Array ( [icon] => Array ( [0] => Array ( [mimetype] => image/png [width] => 48 [height] => 48 [depth] => 24 [url] => CP_logo_0.png ) [1] => Array ( [mimetype] => image/png [width] => 120 [height] => 120 [depth] => 24 [url] => CP_logo_1.png ) [2] => Array ( [mimetype] => image/jpeg [width] => 48 [height] => 48 [depth] => 24 [url] => CP_logo_2.jpg ) [3] => Array ( [mimetype] => image/jpeg [width] => 120 [height] => 120 [depth] => 24 [url] => CP_logo_3.jpg ) ) ) [serviceList] => Array ( [service] => Array ( [0] => Array ( [serviceType] => urn:schemas-upnp-org:service:RenderingControl:1 [serviceId] => urn:upnp-org:serviceId:RenderingControl [SCPDURL] => nmrRenderingControl.xml [controlURL] => upnp/control/RenderingControl1 [eventSubURL] => upnp/event/RenderingControl1 ) [1] => Array ( [serviceType] => urn:schemas-upnp-org:service:ConnectionManager:1 [serviceId] => urn:upnp-org:serviceId:ConnectionManager [SCPDURL] => nmrConnectionManager.xml [controlURL] => upnp/control/ConnectionManager1 [eventSubURL] => upnp/event/ConnectionManager1 ) [2] => Array ( [serviceType] => urn:schemas-upnp-org:service:AVTransport:1 [serviceId] => urn:upnp-org:serviceId:AVTransport [SCPDURL] => nmrAVTransport.xml [controlURL] => upnp/control/AVTransport1 [eventSubURL] => upnp/event/AVTransport1 ) ) ) [presentationURL] => nmr.html ) ) ) ) [2] => Array ( [TITLE] => Philips TV [UUID] => uuid:5AFEF00D-BABE-DADA-FA5A-188ED5B777EF [LOGO] => http://192.168.100.4:49154CP_logo_0.png [JDATA] => Array ( [http] => HTTP/1.1 200 OK [cache-control] => max-age=1800 [date] => Sat, 24 Feb 2018 19:34:58 GMT [ext] => EXT: [location] => http://192.168.100.4:49154/nmsDescription.xml [server] => Linux2.6/0.0 UPnP/1.0 PhilipsIntelSDK/1.4 DLNADOC/1.50 [st] => upnp:rootdevice [usn] => uuid:5AFEF00D-BABE-DADA-FA5A-188ED5B777EF::upnp:rootdevice [content-length] => 0 [description] => Array ( [specVersion] => Array ( [major] => 1 [minor] => 0 ) [device] => Array ( [deviceType] => urn:schemas-upnp-org:device:MediaServer:3 [friendlyName] => Philips TV [manufacturer] => Royal Philips Electronics [manufacturerURL] => http://www.philips.com [modelDescription] => Philips TV Server [modelName] => Philips TV Server [modelNumber] => 1.0 [modelURL] => http://www.philips.com/ [serialNumber] => 123456789-serial [UDN] => uuid:5AFEF00D-BABE-DADA-FA5A-188ED5B777EF [UPC] => 123456789123 [iconList] => Array ( [icon] => Array ( [0] => Array ( [mimetype] => image/png [height] => 48 [width] => 48 [depth] => 24 [url] => CP_logo_0.png ) [1] => Array ( [mimetype] => image/png [height] => 120 [width] => 120 [depth] => 24 [url] => CP_logo_1.png ) [2] => Array ( [mimetype] => image/jpeg [height] => 48 [width] => 48 [depth] => 24 [url] => CP_logo_2.jpg ) [3] => Array ( [mimetype] => image/jpeg [height] => 120 [width] => 120 [depth] => 24 [url] => CP_logo_3.jpg ) ) ) [serviceList] => Array ( [service] => Array ( [0] => Array ( [serviceType] => urn:schemas-upnp-org:service:ContentDirectory:3 [serviceId] => urn:upnp-org:serviceId:ContentDirectory [controlURL] => upnp/control/ContentDirectoryNmsO [eventSubURL] => upnp/event/ContentDirectoryNmsO [SCPDURL] => nmsContentDirectorySCPD.xml ) [1] => Array ( [serviceType] => urn:schemas-upnp-org:service:ConnectionManager:2 [serviceId] => urn:upnp-org:serviceId:ConnectionManager [controlURL] => upnp/control/ConnectionManagerNmsO [eventSubURL] => upnp/event/ConnectionManagerNmsO [SCPDURL] => nmsConnectionManagerSCPD.xml ) ) ) ) ) ) ) )
nick7zmail писал(а): / пропущен
Именно он.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: [Модуль] DLNA

Сообщение nick7zmail » Вс фев 25, 2018 1:20 pm

Добавил команды prev next, но телек у меня на них не реагирует...регулировки громкости в библиотеке не нашел - надо самому дописывать.
Так же попробовал в очередной раз исправить картинки, для случаев если presrntationUrl неинформативная. У меня вроде адекватно прицепились.
Кстати есть идея кэшировать картинки, ибо если устройство выключено - с устройства картинку он не сможет выцепить.
За это сообщение автора nick7zmail поблагодарили (всего 2):
Denis_k (Вс фев 25, 2018 1:53 pm) • Gelezako (Сб мар 17, 2018 6:13 pm)
Рейтинг: 2.33%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: [Модуль] DLNA

Сообщение tarasfrompir » Вс фев 25, 2018 1:54 pm

Вот здесь класно комманды расписаны для avtransport. https://github.com/SamDecrock/DLNA-down ... er/soco.py
Спасибо нам ПОМОЖЕТ..!
Ответить