DLNA协议流程分析

mac2024-06-06  41

############################################################## server -> multicast group(239.255.255.250:1900)

NOTIFY * HTTP/1.1 HOST: 239.255.255.250:1900 CACHE-CONTROL: max-age=66 LOCATION: http://192.168.31.100:49152/description.xml NT: upnp:rootdevice NTS: ssdp:alive SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 USN: uuid:F7CA5454-3F48-4390-8009-243cef45cbab::upnp:rootdevice ############################################################## server -> multicast group(239.255.255.250:1900)

NOTIFY * HTTP/1.1 HOST: 239.255.255.250:1900 CACHE-CONTROL: max-age=66 LOCATION: http://192.168.31.100:49152/description.xml NT: upnp:rootdevice NTS: ssdp:alive SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 USN: uuid:F7CA5454-3F48-4390-8009-243cef45cbab::upnp:rootdevice ############################################################## server -> multicast group(239.255.255.250:1900)

NOTIFY * HTTP/1.1 HOST: 239.255.255.250:1900 CACHE-CONTROL: max-age=66 LOCATION: http://192.168.31.100:49152/description.xml NT: upnp:rootdevice NTS: ssdp:alive SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 USN: uuid:F7CA5454-3F48-4390-8009-243cef45cbab::upnp:rootdevice ############################################################## client --> multicast group(239.255.255.250:1900):

M-SEARCH * HTTP/1.1 MX: 1 ST: upnp:rootdevice MAN: "ssdp:discover" User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Connection: close Host: 239.255.255.250:1900

server --> multicast group(239.255.255.250:1900):

NOTIFY * HTTP/1.1 HOST: 239.255.255.250:1900 CACHE-CONTROL: max-age=66 LOCATION: http://192.168.31.100:49152/description.xml NT: upnp:rootdevice NTS: ssdp:alive SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 USN: uuid:F7CA5454-3F48-4390-8009-243cef45cbab::upnp:rootdevice ############################################################## client --> server(192.168.31.100:49152)

GET /description.xml HTTP/1.1 User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152

server --> client:

HTTP/1.1 200 OK CONTENT-LENGTH: 2607 CONTENT-TYPE: text/xml DATE: Wed, 30 Oct 2019 10:20:15 GMT LAST-MODIFIED: Wed, 30 Oct 2019 10:19:59 GMT SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic CONNECTION: close

<?xml version="1.0"?> <root xmlns="urn:schemas-upnp-org:device-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <device> <deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType> <presentationURL>/</presentationURL> <friendlyName>HappyCastK3</friendlyName> <manufacturer>LEBO</manufacturer> <manufacturerURL>http://www.hpplay.com.cn</manufacturerURL> <modelDescription>Lebo Media Render</modelDescription> <modelName>HappyCast</modelName> <modelURL>http://www.hpplay.com.cn</modelURL> <dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMR-1.50</dlna:X_DLNADOC> <UDN>uuid:F7CA5454-3F48-4390-8009-243cef45cbab</UDN> <UID>-1600790645331888621</UID> <serviceList> <service> <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType> <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId> <SCPDURL>/dlna/Render/AVTransport_scpd.xml</SCPDURL> <controlURL>_urn:schemas-upnp-org:service:AVTransport_control</controlURL> <eventSubURL>_urn:schemas-upnp-org:service:AVTransport_event</eventSubURL> </service> <service> <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType> <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId> <SCPDURL>/dlna/Render/ConnectionManager_scpd.xml</SCPDURL> <controlURL>_urn:schemas-upnp-org:service:ConnectionManager_control</controlURL> <eventSubURL>_urn:schemas-upnp-org:service:ConnectionManager_event</eventSubURL> </service> <service> <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType> <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId> <SCPDURL>/dlna/Render/RenderingControl_scpd.xml</SCPDURL> <controlURL>_urn:schemas-upnp-org:service:RenderingControl_control</controlURL> <eventSubURL>_urn:schemas-upnp-org:service:RenderingControl_event</eventSubURL> </service> </serviceList> <av:X_RController_DeviceInfo xmlns:av="urn:mi-com:av"> <av:X_RController_Version>1.0</av:X_RController_Version> <av:X_RController_ServiceList> <av:X_RController_Service> <av:X_RController_ServiceType>controller</av:X_RController_ServiceType> <av:X_RController_ActionList_URL>http://192.168.31.100:6095/</av:X_RController_ActionList_URL> </av:X_RController_Service> <av:X_RController_Service> <av:X_RController_ServiceType>data</av:X_RController_ServiceType> <av:X_RController_ActionList_URL>http://api.tv.duokanbox.com/bolt/3party/</av:X_RController_ActionList_URL> </av:X_RController_Service> </av:X_RController_ServiceList> </av:X_RController_DeviceInfo> </device> <URLBase>http://192.168.31.100:49152</URLBase> </root> ##############################################################

GET /dlna/Render/AVTransport_scpd.xml HTTP/1.1 User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152

HTTP/1.1 200 OK CONTENT-LENGTH: 14868 CONTENT-TYPE: text/xml DATE: Wed, 30 Oct 2019 10:20:16 GMT LAST-MODIFIED: Thu, 01 Jan 1970 00:00:00 GMT SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic CONNECTION: close

<scpd> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <actionList> <action> <name>GetCurrentTransportActions</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Actions</name> <direction>out</direction> <relatedStateVariable>CurrentTransportActions</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetDeviceCapabilities</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>PlayMedia</name> <direction>out</direction> <relatedStateVariable>PossiblePlaybackStorageMedia</relatedStateVariable> </argument> <argument> <name>RecMedia</name> <direction>out</direction> <relatedStateVariable>PossibleRecordStorageMedia</relatedStateVariable> </argument> <argument> <name>RecQualityModes</name> <direction>out</direction> <relatedStateVariable>PossibleRecordQualityModes</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetMediaInfo</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>NrTracks</name> <direction>out</direction> <relatedStateVariable>NumberOfTracks</relatedStateVariable> </argument> <argument> <name>MediaDuration</name> <direction>out</direction> <relatedStateVariable>CurrentMediaDuration</relatedStateVariable> </argument> <argument> <name>CurrentURI</name> <direction>out</direction> <relatedStateVariable>AVTransportURI</relatedStateVariable> </argument> <argument> <name>CurrentURIMetaData</name> <direction>out</direction> <relatedStateVariable>AVTransportURIMetaData</relatedStateVariable> </argument> <argument> <name>NextURI</name> <direction>out</direction> <relatedStateVariable>NextAVTransportURI</relatedStateVariable> </argument> <argument> <name>NextURIMetaData</name> <direction>out</direction> <relatedStateVariable>NextAVTransportURIMetaData</relatedStateVariable> </argument> <argument> <name>PlayMedium</name> <direction>out</direction> <relatedStateVariable>PlaybackStorageMedium</relatedStateVariable> </argument> <argument> <name>RecordMedium</name> <direction>out</direction> <relatedStateVariable>RecordStorageMedium</relatedStateVariable> </argument> <argument> <name>WriteStatus</name> <direction>out</direction> <relatedStateVariable>RecordMediumWriteStatus</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetPositionInfo</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Track</name> <direction>out</direction> <relatedStateVariable>CurrentTrack</relatedStateVariable> </argument> <argument> <name>TrackDuration</name> <direction>out</direction> <relatedStateVariable>CurrentTrackDuration</relatedStateVariable> </argument> <argument> <name>TrackMetaData</name> <direction>out</direction> <relatedStateVariable>CurrentTrackMetaData</relatedStateVariable> </argument> <argument> <name>TrackURI</name> <direction>out</direction> <relatedStateVariable>CurrentTrackURI</relatedStateVariable> </argument> <argument> <name>RelTime</name> <direction>out</direction> <relatedStateVariable>RelativeTimePosition</relatedStateVariable> </argument> <argument> <name>AbsTime</name> <direction>out</direction> <relatedStateVariable>AbsoluteTimePosition</relatedStateVariable> </argument> <argument> <name>RelCount</name> <direction>out</direction> <relatedStateVariable>RelativeCounterPosition</relatedStateVariable> </argument> <argument> <name>AbsCount</name> <direction>out</direction> <relatedStateVariable>AbsoluteCounterPosition</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetTransportInfo</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentTransportState</name> <direction>out</direction> <relatedStateVariable>TransportState</relatedStateVariable> </argument> <argument> <name>CurrentTransportStatus</name> <direction>out</direction> <relatedStateVariable>TransportStatus</relatedStateVariable> </argument> <argument> <name>CurrentSpeed</name> <direction>out</direction> <relatedStateVariable>TransportPlaySpeed</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetTransportSettings</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>PlayMode</name> <direction>out</direction> <relatedStateVariable>CurrentPlayMode</relatedStateVariable> </argument> <argument> <name>RecQualityMode</name> <direction>out</direction> <relatedStateVariable>CurrentRecordQualityMode</relatedStateVariable> </argument> </argumentList> </action> <action> <name>Next</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> </argumentList> </action> <action> <name>Pause</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> </argumentList> </action> <action> <name>Play</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Speed</name> <direction>in</direction> <relatedStateVariable>TransportPlaySpeed</relatedStateVariable> </argument> </argumentList> </action> <action> <name>Previous</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> </argumentList> </action> <action> <name>Seek</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Unit</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_SeekMode</relatedStateVariable> </argument> <argument> <name>Target</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_SeekTarget</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetAVTransportURI</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentURI</name> <direction>in</direction> <relatedStateVariable>AVTransportURI</relatedStateVariable> </argument> <argument> <name>CurrentURIMetaData</name> <direction>in</direction> <relatedStateVariable>AVTransportURIMetaData</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetPlayMode</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>NewPlayMode</name> <direction>in</direction> <relatedStateVariable>CurrentPlayMode</relatedStateVariable> </argument> </argumentList> </action> <action> <name>Stop</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> </argumentList> </action> </actionList> <serviceStateTable> <stateVariable sendEvents="no"> <name>TransportStatus</name> <dataType>string</dataType> <allowedValueList> <allowedValue>OK</allowedValue> <allowedValue>ERROR_OCCURRED</allowedValue> <allowedValue> vendor-defined </allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>NextAVTransportURI</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>NextAVTransportURIMetaData</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>CurrentTrackMetaData</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>RelativeCounterPosition</name> <dataType>i4</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_InstanceID</name> <dataType>ui4</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_SeekTarget</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>PlaybackStorageMedium</name> <dataType>string</dataType> <allowedValueList> <allowedValue>UNKNOWN</allowedValue> <allowedValue>DV</allowedValue> <allowedValue>MINI-DV</allowedValue> <allowedValue>VHS</allowedValue> <allowedValue>W-VHS</allowedValue> <allowedValue>S-VHS</allowedValue> <allowedValue>D-VHS</allowedValue> <allowedValue>VHSC</allowedValue> <allowedValue>VIDEO8</allowedValue> <allowedValue>HI8</allowedValue> <allowedValue>CD-ROM</allowedValue> <allowedValue>CD-DA</allowedValue> <allowedValue>CD-R</allowedValue> <allowedValue>CD-RW</allowedValue> <allowedValue>VIDEO-CD</allowedValue> <allowedValue>SACD</allowedValue> <allowedValue>MD-AUDIO</allowedValue> <allowedValue>MD-PICTURE</allowedValue> <allowedValue>DVD-ROM</allowedValue> <allowedValue>DVD-VIDEO</allowedValue> <allowedValue>DVD-R</allowedValue> <allowedValue>DVD+RW</allowedValue> <allowedValue>DVD-RW</allowedValue> <allowedValue>DVD-RAM</allowedValue> <allowedValue>DVD-AUDIO</allowedValue> <allowedValue>DAT</allowedValue> <allowedValue>LD</allowedValue> <allowedValue>HDD</allowedValue> <allowedValue>MICRO-MV</allowedValue> <allowedValue>NETWORK</allowedValue> <allowedValue>NONE</allowedValue> <allowedValue>NOT_IMPLEMENTED</allowedValue> <allowedValue> vendor-defined </allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>RelativeTimePosition</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>PossibleRecordStorageMedia</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>CurrentPlayMode</name> <dataType>string</dataType> <allowedValueList> <allowedValue>NORMAL</allowedValue> <allowedValue>REPEAT_ALL</allowedValue> <allowedValue>INTRO</allowedValue> </allowedValueList> <defaultValue>NORMAL</defaultValue> </stateVariable> <stateVariable sendEvents="no"> <name>TransportPlaySpeed</name> <dataType>string</dataType> <allowedValueList> <allowedValue>1</allowedValue> <allowedValue> vendor-defined </allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>PossiblePlaybackStorageMedia</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>AbsoluteTimePosition</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>CurrentTrack</name> <dataType>ui4</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>4294967295</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>CurrentTrackURI</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>CurrentTransportActions</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>NumberOfTracks</name> <dataType>ui4</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>4294967295</maximum> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>AVTransportURI</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>AbsoluteCounterPosition</name> <dataType>i4</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>CurrentRecordQualityMode</name> <dataType>string</dataType> <allowedValueList> <allowedValue>0:EP</allowedValue> <allowedValue>1:LP</allowedValue> <allowedValue>2:SP</allowedValue> <allowedValue>0:BASIC</allowedValue> <allowedValue>1:MEDIUM</allowedValue> <allowedValue>2:HIGH</allowedValue> <allowedValue>NOT_IMPLEMENTED</allowedValue> <allowedValue> vendor-defined </allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>CurrentMediaDuration</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_SeekMode</name> <dataType>string</dataType> <allowedValueList> <allowedValue>ABS_TIME</allowedValue> <allowedValue>REL_TIME</allowedValue> <allowedValue>ABS_COUNT</allowedValue> <allowedValue>REL_COUNT</allowedValue> <allowedValue>TRACK_NR</allowedValue> <allowedValue>CHANNEL_FREQ</allowedValue> <allowedValue>TAPE-INDEX</allowedValue> <allowedValue>FRAME</allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>AVTransportURIMetaData</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>RecordStorageMedium</name> <dataType>string</dataType> <allowedValueList> <allowedValue>UNKNOWN</allowedValue> <allowedValue>DV</allowedValue> <allowedValue>MINI-DV</allowedValue> <allowedValue>VHS</allowedValue> <allowedValue>W-VHS</allowedValue> <allowedValue>S-VHS</allowedValue> <allowedValue>D-VHS</allowedValue> <allowedValue>VHSC</allowedValue> <allowedValue>VIDEO8</allowedValue> <allowedValue>HI8</allowedValue> <allowedValue>CD-ROM</allowedValue> <allowedValue>CD-DA</allowedValue> <allowedValue>CD-R</allowedValue> <allowedValue>CD-RW</allowedValue> <allowedValue>VIDEO-CD</allowedValue> <allowedValue>SACD</allowedValue> <allowedValue>MD-AUDIO</allowedValue> <allowedValue>MD-PICTURE</allowedValue> <allowedValue>DVD-ROM</allowedValue> <allowedValue>DVD-VIDEO</allowedValue> <allowedValue>DVD-R</allowedValue> <allowedValue>DVD+RW</allowedValue> <allowedValue>DVD-RW</allowedValue> <allowedValue>DVD-RAM</allowedValue> <allowedValue>DVD-AUDIO</allowedValue> <allowedValue>DAT</allowedValue> <allowedValue>LD</allowedValue> <allowedValue>HDD</allowedValue> <allowedValue>MICRO-MV</allowedValue> <allowedValue>NETWORK</allowedValue> <allowedValue>NONE</allowedValue> <allowedValue>NOT_IMPLEMENTED</allowedValue> <allowedValue> vendor-defined </allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>RecordMediumWriteStatus</name> <dataType>string</dataType> <allowedValueList> <allowedValue>WRITABLE</allowedValue> <allowedValue>PROTECTED</allowedValue> <allowedValue>NOT_WRITABLE</allowedValue> <allowedValue>UNKNOWN</allowedValue> <allowedValue>NOT_IMPLEMENTED</allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="yes"> <name>LastChange</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>CurrentTrackDuration</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>TransportState</name> <dataType>string</dataType> <allowedValueList> <allowedValue>STOPPED</allowedValue> <allowedValue>PAUSED_PLAYBACK</allowedValue> <allowedValue>PAUSED_RECORDING</allowedValue> <allowedValue>PLAYING</allowedValue> <allowedValue>RECORDING</allowedValue> <allowedValue>TRANSITIONING</allowedValue> <allowedValue>NO_MEDIA_PRESENT</allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>PossibleRecordQualityModes</name> <dataType>string</dataType> </stateVariable> </serviceStateTable> </scpd> ##############################################################

GET /dlna/Render/ConnectionManager_scpd.xml HTTP/1.1 User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152

HTTP/1.1 200 OK CONTENT-LENGTH: 4278 CONTENT-TYPE: text/xml DATE: Wed, 30 Oct 2019 10:20:17 GMT LAST-MODIFIED: Thu, 01 Jan 1970 00:00:00 GMT SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic CONNECTION: close

<scpd> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <actionList> <action> <name>GetCurrentConnectionInfo</name> <argumentList> <argument> <name>ConnectionID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_ConnectionID</relatedStateVariable> </argument> <argument> <name>RcsID</name> <direction>out</direction> <relatedStateVariable>A_ARG_TYPE_RcsID</relatedStateVariable> </argument> <argument> <name>AVTransportID</name> <direction>out</direction> <relatedStateVariable>A_ARG_TYPE_AVTransportID</relatedStateVariable> </argument> <argument> <name>ProtocolInfo</name> <direction>out</direction> <relatedStateVariable>A_ARG_TYPE_ProtocolInfo</relatedStateVariable> </argument> <argument> <name>PeerConnectionManager</name> <direction>out</direction> <relatedStateVariable>A_ARG_TYPE_ConnectionManager</relatedStateVariable> </argument> <argument> <name>PeerConnectionID</name> <direction>out</direction> <relatedStateVariable>A_ARG_TYPE_ConnectionID</relatedStateVariable> </argument> <argument> <name>Direction</name> <direction>out</direction> <relatedStateVariable>A_ARG_TYPE_Direction</relatedStateVariable> </argument> <argument> <name>Status</name> <direction>out</direction> <relatedStateVariable>A_ARG_TYPE_ConnectionStatus</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetProtocolInfo</name> <argumentList> <argument> <name>Source</name> <direction>out</direction> <relatedStateVariable>SourceProtocolInfo</relatedStateVariable> </argument> <argument> <name>Sink</name> <direction>out</direction> <relatedStateVariable>SinkProtocolInfo</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetCurrentConnectionIDs</name> <argumentList> <argument> <name>ConnectionIDs</name> <direction>out</direction> <relatedStateVariable>CurrentConnectionIDs</relatedStateVariable> </argument> </argumentList> </action> </actionList> <serviceStateTable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_ProtocolInfo</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_ConnectionStatus</name> <dataType>string</dataType> <allowedValueList> <allowedValue>OK</allowedValue> <allowedValue>ContentFormatMismatch</allowedValue> <allowedValue>InsufficientBandwidth</allowedValue> <allowedValue>UnreliableChannel</allowedValue> <allowedValue>Unknown</allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_AVTransportID</name> <dataType>i4</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_RcsID</name> <dataType>i4</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_ConnectionID</name> <dataType>i4</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_ConnectionManager</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="yes"> <name>SourceProtocolInfo</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="yes"> <name>SinkProtocolInfo</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_Direction</name> <dataType>string</dataType> <allowedValueList> <allowedValue>Input</allowedValue> <allowedValue>Output</allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="yes"> <name>CurrentConnectionIDs</name> <dataType>string</dataType> </stateVariable> </serviceStateTable> </scpd> ############################################################### GET /dlna/Render/RenderingControl_scpd.xml HTTP/1.1 User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152

HTTP/1.1 200 OK CONTENT-LENGTH: 17287 CONTENT-TYPE: text/xml DATE: Wed, 30 Oct 2019 10:20:17 GMT LAST-MODIFIED: Thu, 01 Jan 1970 00:00:00 GMT SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic CONNECTION: close

<scpd> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <actionList> <action> <name>GetBlueVideoBlackLevel</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentBlueVideoBlackLevel</name> <direction>out</direction> <relatedStateVariable>BlueVideoBlackLevel</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetBlueVideoGain</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentBlueVideoGain</name> <direction>out</direction> <relatedStateVariable>BlueVideoGain</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetBrightness</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentBrightness</name> <direction>out</direction> <relatedStateVariable>Brightness</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetColorTemperature</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentColorTemperature</name> <direction>out</direction> <relatedStateVariable>ColorTemperature</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetContrast</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentContrast</name> <direction>out</direction> <relatedStateVariable>Contrast</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetGreenVideoBlackLevel</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentGreenVideoBlackLevel</name> <direction>out</direction> <relatedStateVariable>GreenVideoBlackLevel</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetGreenVideoGain</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentGreenVideoGain</name> <direction>out</direction> <relatedStateVariable>GreenVideoGain</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetHorizontalKeystone</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentHorizontalKeystone</name> <direction>out</direction> <relatedStateVariable>HorizontalKeystone</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetLoudness</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Channel</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable> </argument> <argument> <name>CurrentLoudness</name> <direction>out</direction> <relatedStateVariable>Loudness</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetMute</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Channel</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable> </argument> <argument> <name>CurrentMute</name> <direction>out</direction> <relatedStateVariable>Mute</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetRedVideoBlackLevel</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentRedVideoBlackLevel</name> <direction>out</direction> <relatedStateVariable>RedVideoBlackLevel</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetRedVideoGain</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentRedVideoGain</name> <direction>out</direction> <relatedStateVariable>RedVideoGain</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetSharpness</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentSharpness</name> <direction>out</direction> <relatedStateVariable>Sharpness</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetVerticalKeystone</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentVerticalKeystone</name> <direction>out</direction> <relatedStateVariable>VerticalKeystone</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetVolume</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Channel</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable> </argument> <argument> <name>CurrentVolume</name> <direction>out</direction> <relatedStateVariable>Volume</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetVolumeDB</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Channel</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable> </argument> <argument> <name>CurrentVolume</name> <direction>out</direction> <relatedStateVariable>VolumeDB</relatedStateVariable> </argument> </argumentList> </action> <action> <name>GetVolumeDBRange</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Channel</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable> </argument> <argument> <name>MinValue</name> <direction>out</direction> <relatedStateVariable>VolumeDB</relatedStateVariable> </argument> <argument> <name>MaxValue</name> <direction>out</direction> <relatedStateVariable>VolumeDB</relatedStateVariable> </argument> </argumentList> </action> <action> <name>ListPresets</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>CurrentPresetNameList</name> <direction>out</direction> <relatedStateVariable>PresetNameList</relatedStateVariable> </argument> </argumentList> </action> <action> </action> <action> <name>SetBlueVideoBlackLevel</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredBlueVideoBlackLevel</name> <direction>in</direction> <relatedStateVariable>BlueVideoBlackLevel</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetBlueVideoGain</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredBlueVideoGain</name> <direction>in</direction> <relatedStateVariable>BlueVideoGain</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetBrightness</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredBrightness</name> <direction>in</direction> <relatedStateVariable>Brightness</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetColorTemperature</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredColorTemperature</name> <direction>in</direction> <relatedStateVariable>ColorTemperature</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetContrast</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredContrast</name> <direction>in</direction> <relatedStateVariable>Contrast</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetGreenVideoBlackLevel</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredGreenVideoBlackLevel</name> <direction>in</direction> <relatedStateVariable>GreenVideoBlackLevel</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetGreenVideoGain</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredGreenVideoGain</name> <direction>in</direction> <relatedStateVariable>GreenVideoGain</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetHorizontalKeystone</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredHorizontalKeystone</name> <direction>in</direction> <relatedStateVariable>HorizontalKeystone</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetLoudness</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Channel</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable> </argument> <argument> <name>DesiredLoudness</name> <direction>in</direction> <relatedStateVariable>Loudness</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetMute</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Channel</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable> </argument> <argument> <name>DesiredMute</name> <direction>in</direction> <relatedStateVariable>Mute</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetRedVideoBlackLevel</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredRedVideoBlackLevel</name> <direction>in</direction> <relatedStateVariable>RedVideoBlackLevel</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetRedVideoGain</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredRedVideoGain</name> <direction>in</direction> <relatedStateVariable>RedVideoGain</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetSharpness</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredSharpness</name> <direction>in</direction> <relatedStateVariable>Sharpness</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetVerticalKeystone</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>DesiredVerticalKeystone</name> <direction>in</direction> <relatedStateVariable>VerticalKeystone</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetVolume</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Channel</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable> </argument> <argument> <name>DesiredVolume</name> <direction>in</direction> <relatedStateVariable>Volume</relatedStateVariable> </argument> </argumentList> </action> <action> <name>SetVolumeDB</name> <argumentList> <argument> <name>InstanceID</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable> </argument> <argument> <name>Channel</name> <direction>in</direction> <relatedStateVariable>A_ARG_TYPE_Channel</relatedStateVariable> </argument> <argument> <name>DesiredVolume</name> <direction>in</direction> <relatedStateVariable>VolumeDB</relatedStateVariable> </argument> </argumentList> </action> </actionList> <serviceStateTable> <stateVariable sendEvents="no"> <name>GreenVideoGain</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>BlueVideoBlackLevel</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>VerticalKeystone</name> <dataType>i2</dataType> <allowedValueRange> <minimum>-32768</minimum> <maximum>32767</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>GreenVideoBlackLevel</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>Volume</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>Loudness</name> <dataType>boolean</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_InstanceID</name> <dataType>ui4</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>RedVideoGain</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>ColorTemperature</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>65535</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>Sharpness</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_PresetName</name> <dataType>string</dataType> <allowedValueList> <allowedValue>FactoryDefaults</allowedValue> <allowedValue>InstallationDefaults</allowedValue> <allowedValue>Vendor defined</allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>RedVideoBlackLevel</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>BlueVideoGain</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>Mute</name> <dataType>boolean</dataType> </stateVariable> <stateVariable sendEvents="yes"> <name>LastChange</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>A_ARG_TYPE_Channel</name> <dataType>string</dataType> <allowedValueList> <allowedValue>Master</allowedValue> <allowedValue>LF</allowedValue> <allowedValue>RF</allowedValue> </allowedValueList> </stateVariable> <stateVariable sendEvents="no"> <name>HorizontalKeystone</name> <dataType>i2</dataType> <allowedValueRange> <minimum>-32768</minimum> <maximum>32767</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>VolumeDB</name> <dataType>i2</dataType> <allowedValueRange> <minimum>-32768</minimum> <maximum>32767</maximum> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>PresetNameList</name> <dataType>string</dataType> </stateVariable> <stateVariable sendEvents="no"> <name>Contrast</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> <stateVariable sendEvents="no"> <name>Brightness</name> <dataType>ui2</dataType> <allowedValueRange> <minimum>0</minimum> <maximum>100</maximum> <step>1</step> </allowedValueRange> </stateVariable> </serviceStateTable> </scpd>

############################################################### //setup AVTransport url:

POST /_urn:schemas-upnp-org:service:AVTransport_control HTTP/1.1 SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI" User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152 Content-Length: 1021 Content-Type: text/xml; charset="utf-8"

<?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>http://192.168.31.11:1495/[%E5%AF%BB%E6%9E%AA].The.Missing.Gun.2002.mkv</CurrentURI><CurrentURIMetaData>&lt;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/"&gt;&lt;item id="[......].The.Missing.Gun.2002.mkv" parentID="-1" restricted="1"&gt;&lt;upnp:genre&gt;Unknown&lt;/upnp:genre&gt;&lt;upnp:storageMedium&gt;UNKNOWN&lt;/upnp:storageMedium&gt;&lt;upnp:writeStatus&gt;UNKNOWN&lt;/upnp:writeStatus&gt;&lt;upnp:class&gt;object.item.videoItem.movie&lt;/upnp:class&gt;&lt;dc:title&gt;[......].The.Missing.Gun.2002.mkv&lt;/dc:title&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>HTTP/1.1 200 OK CONTENT-LENGTH: 270 CONTENT-TYPE: text/xml; charset="utf-8" DATE: Wed, 30 Oct 2019 11:35:30 GMT EXT: SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body> <u:SetAVTransportURIResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"></u:SetAVTransportURIResponse> </s:Body> </s:Envelope>

############################################################### //request play url:

POST /_urn:schemas-upnp-org:service:AVTransport_control HTTP/1.1 SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Play" User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152 Content-Length: 306 Content-Type: text/xml; charset="utf-8"

<?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:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Speed>1</Speed></u:Play></s:Body></s:Envelope>HTTP/1.1 200 OK CONTENT-LENGTH: 244 CONTENT-TYPE: text/xml; charset="utf-8" DATE: Wed, 30 Oct 2019 11:35:30 GMT EXT: SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body> <u:PlayResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"></u:PlayResponse> </s:Body> </s:Envelope>

############################################################### //GetTransportInfo:

POST /_urn:schemas-upnp-org:service:AVTransport_control HTTP/1.1 SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#GetTransportInfo" User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152 Content-Length: 314 Content-Type: text/xml; charset="utf-8"

<?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:GetTransportInfo xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:GetTransportInfo></s:Body></s:Envelope>HTTP/1.1 200 OK CONTENT-LENGTH: 411 CONTENT-TYPE: text/xml; charset="utf-8" DATE: Wed, 30 Oct 2019 11:35:30 GMT EXT: SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body> <u:GetTransportInfoResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"> <CurrentTransportState>PLAYING</CurrentTransportState> <CurrentTransportStatus>OK</CurrentTransportStatus> <CurrentSpeed>1</CurrentSpeed> </u:GetTransportInfoResponse> </s:Body> </s:Envelope> ############################################################### //GetPositionInfo:

POST /_urn:schemas-upnp-org:service:AVTransport_control HTTP/1.1 SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#GetPositionInfo" User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152 Content-Length: 312 Content-Type: text/xml; charset="utf-8"

<?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:GetPositionInfo xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:GetPositionInfo></s:Body></s:Envelope>HTTP/1.1 200 OK CONTENT-LENGTH: 1206 CONTENT-TYPE: text/xml; charset="utf-8" DATE: Wed, 30 Oct 2019 11:35:30 GMT EXT: SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body> <u:GetPositionInfoResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"> <Track>0</Track> <TrackDuration>00:00:00</TrackDuration> <TrackMetaData>&lt;DIDL-Lite xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;&gt;&lt;item id=&quot;[......].The.Missing.Gun.2002.mkv&quot; parentID=&quot;-1&quot; restricted=&quot;1&quot;&gt;&lt;upnp:genre&gt;Unknown&lt;/upnp:genre&gt;&lt;upnp:storageMedium&gt;UNKNOWN&lt;/upnp:storageMedium&gt;&lt;upnp:writeStatus&gt;UNKNOWN&lt;/upnp:writeStatus&gt;&lt;upnp:class&gt;object.item.videoItem.movie&lt;/upnp:class&gt;&lt;dc:title&gt;[......].The.Missing.Gun.2002.mkv&lt;/dc:title&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</TrackMetaData> <TrackURI>http://192.168.31.11:1495/[%E5%AF%BB%E6%9E%AA].The.Missing.Gun.2002.mkv</TrackURI> <RelTime>00:00:00</RelTime> <AbsTime>00:00:00</AbsTime> <RelCount>2147483647</RelCount> <AbsCount>2147483647</AbsCount> </u:GetPositionInfoResponse> </s:Body> </s:Envelope>

############################################################### //GetTransportInfo:

POST /_urn:schemas-upnp-org:service:AVTransport_control HTTP/1.1 SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#GetTransportInfo" User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152 Content-Length: 314 Content-Type: text/xml; charset="utf-8"

<?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:GetTransportInfo xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:GetTransportInfo></s:Body></s:Envelope>HTTP/1.1 200 OK CONTENT-LENGTH: 411 CONTENT-TYPE: text/xml; charset="utf-8" DATE: Wed, 30 Oct 2019 11:35:31 GMT EXT: SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body> <u:GetTransportInfoResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"> <CurrentTransportState>PLAYING</CurrentTransportState> <CurrentTransportStatus>OK</CurrentTransportStatus> <CurrentSpeed>1</CurrentSpeed> </u:GetTransportInfoResponse> </s:Body> </s:Envelope>

################################################################# client --> server seek:

POST /_urn:schemas-upnp-org:service:AVTransport_control HTTP/1.1 SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Seek" User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152 Content-Length: 338 Content-Type: text/xml; charset="utf-8"

<?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:Seek xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Unit>REL_TIME</Unit><Target>00:00:2971</Target></u:Seek></s:Body></s:Envelope>HTTP/1.1 200 OK CONTENT-LENGTH: 244 CONTENT-TYPE: text/xml; charset="utf-8" DATE: Wed, 30 Oct 2019 11:35:31 GMT EXT: SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body> <u:SeekResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"></u:SeekResponse> </s:Body> </s:Envelope>

################################################################# client --> server GetPositionInfo:

POST /_urn:schemas-upnp-org:service:AVTransport_control HTTP/1.1 SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#GetPositionInfo" User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152 Content-Length: 312 Content-Type: text/xml; charset="utf-8"

<?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:GetPositionInfo xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:GetPositionInfo></s:Body></s:Envelope>HTTP/1.1 200 OK CONTENT-LENGTH: 1206 CONTENT-TYPE: text/xml; charset="utf-8" DATE: Wed, 30 Oct 2019 11:35:32 GMT EXT: SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body> <u:GetPositionInfoResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"> <Track>0</Track> <TrackDuration>00:00:00</TrackDuration> <TrackMetaData>&lt;DIDL-Lite xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot;&gt;&lt;item id=&quot;[......].The.Missing.Gun.2002.mkv&quot; parentID=&quot;-1&quot; restricted=&quot;1&quot;&gt;&lt;upnp:genre&gt;Unknown&lt;/upnp:genre&gt;&lt;upnp:storageMedium&gt;UNKNOWN&lt;/upnp:storageMedium&gt;&lt;upnp:writeStatus&gt;UNKNOWN&lt;/upnp:writeStatus&gt;&lt;upnp:class&gt;object.item.videoItem.movie&lt;/upnp:class&gt;&lt;dc:title&gt;[......].The.Missing.Gun.2002.mkv&lt;/dc:title&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</TrackMetaData> <TrackURI>http://192.168.31.11:1495/[%E5%AF%BB%E6%9E%AA].The.Missing.Gun.2002.mkv</TrackURI> <RelTime>00:49:31</RelTime> <AbsTime>00:49:31</AbsTime> <RelCount>2147483647</RelCount> <AbsCount>2147483647</AbsCount> </u:GetPositionInfoResponse> </s:Body> </s:Envelope>

################################################################### POST /_urn:schemas-upnp-org:service:AVTransport_control HTTP/1.1 SOAPAction: "urn:schemas-upnp-org:service:AVTransport:1#Stop" User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0 Host: 192.168.31.100:49152 Content-Length: 290 Content-Type: text/xml; charset="utf-8"

<?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:Stop xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Stop></s:Body></s:Envelope>HTTP/1.1 200 OK CONTENT-LENGTH: 244 CONTENT-TYPE: text/xml; charset="utf-8" DATE: Wed, 30 Oct 2019 11:36:13 GMT EXT: SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13 X-User-Agent: redsonic

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body> <u:StopResponse xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"></u:StopResponse> </s:Body> </s:Envelope>

最新回复(0)