dlna-action 修改版---增加更多功能

nodered节点安装里搜索dlna就出来这一个node-red-contrib-dlna节点,摸索下用是能用就是功能有点少,其实用于tts输出到小度音箱也够用了,但是我还想让它能够控制小度音箱的音量能够获得播放进度,所以就用有限的js知识改了下。

附件的压缩包是三个目录,node-red-contrib-dlna是节点目录,其它两个是依赖库,首先安装节点然后把压缩包内目录替换对应的目录,附件的流是我控制的小度音箱,大家看dashboard应该就知道怎么控制播放了。

dlna-action节点配置里的device要改成你dlna设备的description.xml地址,我建了udp in节点可以收到局域网内dlna设备广播自己的信息,其中LOCATION: http://192.168.1.226:49494/description.xml就是device。

node_modules.zip (29.3 KB)
小度dlna.json (7.9 KB)

非常感谢大神的分享。这个节点我折腾了好长时间,但都不得其要领。我对dlna播放完全陌生,对udp也是完全陌生。有了您分享的流程,让我茅塞顿开。但现在第一步就搞不定了。在udp in监听完全没有输出。

  1. 我的node-red是在docker下安装的,需要特别设置什么吗?
  2. 或是路由器要设置什么吗?
  3. 组播地址就填您示例的ip,还是说我需要用什么方法获得我自己网内的ip?

我也是小白一个,都是摸索的,docker 下的网络有点麻烦,我docker的网络是host模式,其它模式我没实验。
这个239.255.255.250:1900组播地址是用于upnp广播用的如果你docker是host模式应该能收到很多信息。
我的网络从光猫进来就一个网段,我不知道多个路由会不会影响。
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=100
LOCATION: http://192.168.1.226:49494/description.xml
OPT: “http://schemas.upnp.org/upnp/1/0/”; ns=01
01-NLS: xxxxxxxxx6-7d3b-11ea-91ac-dxxxxxxxxxx
NT: upnp:rootdevice
NTS: ssdp:alive
SERVER: Linux/4.9.54, UPnP/1.0, Portable SDK for UPnP devices/1.6.26
X-User-Agent: redsonic
USN: uuid:f7aca08b-3175-4436-b26c-xxxxxxxxxxxxxxxx::upnp:rootdevice
这个是我小度音箱主动广播的,好像我的小米电视也会主动广播
如果你会抓包你在主机上试一下抓udp 1900端口,如果主机抓包能看到类似上边的信息那说明是你docker问题
如果没有类似信息说明是你网络拓扑的问题,

抓包在调试方面非常有用,
我当时很多问题都是抓包发现的。