我可以使用以下内容在DLNA服务器上显示mp4(我知道元信息是错误的,但见下文)。
<?xml version="1.0" encoding="utf-8"?>
<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><![CDATA[http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4]]></CurrentURI>
<CurrentURIMetaData>
<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/"
xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/">
<item id="sample" parentID="0" restricted="0">
<dc:title>Title of Image</dc:title>
<res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_FLAGS=01700000000000000000000000000000;DLNA.ORG_CI=0;DLNA.ORG_OP=01">
http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
</res>
</item>
</DIDL-Lite>
</CurrentURIMetaData>
</u:SetAVTransportURI>
</s:Body>
</s:Envelope>
然后我使用curl命令设置AvTransport,然后播放,这将在DLNA服务器上播放视频。如果我只将url更改为jpeg图像,这不起作用。没有返回错误,屏幕闪烁,图像不显示。我已经验证了图像URL的工作,可以在DLNA服务器上显示使用一个java应用程序,但我想摆脱使用Cling,因为它不再维护,我不需要一个完整的DLNA实现为我的应用程序。
我已经解决了问题。<CurrentURIMetaData>
标签必须将<
替换为<
,将>
替换为>