setPlayURLXml static method
Implementation
static String setPlayURLXml(
String url, {
String title = "",
required PlayType type,
}) {
final time = DateTime.fromMillisecondsSinceEpoch(
DateTime.now().millisecondsSinceEpoch,
);
final douyu = RegExp(r'^https?://(\d+)\?douyu$');
final isdouyu = douyu.firstMatch(url);
if (isdouyu != null) {
final roomId = isdouyu.group(1);
// 斗鱼tv的dlna server,只能指定直播间ID,不接受url资源,必须是如下格式
title = "roomId = $roomId, line = 0";
} else if (title.isEmpty) {
title = url;
}
title = htmlEncode(title);
url = htmlEncode(url);
var oclass = 'object.item.videoItem';
var res = '';
if (type is AudioMime) {
oclass = 'object.item.audioItem';
} else if (type is ImageMime) {
oclass = 'object.item.imageItem';
}
if (type.protocolInfo.isNotEmpty) {
res = '<res protocolInfo="${type.protocolInfo}">$url</res>';
}
return '''<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
<InstanceID>0</InstanceID>
<CurrentURI>$url</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="id" parentID="0" restricted="0"><dc:title>$title</dc:title><upnp:artist>unknow</upnp:artist><dc:date>$time</dc:date><upnp:class>$oclass</upnp:class>$res</item>
</DIDL-Lite>
</CurrentURIMetaData>
</u:SetAVTransportURI>
</s:Body>
</s:Envelope>
''';
}