I plan to extend the demo with this functionality.
Thanks,
Sent from my iPhone
[[renderer avTransport] SetAVTransportURIWithInstanceID:@"0" CurrentURI:[mediaItem uri] CurrentURIMetaData:@"" ];
[[renderer avTransport] PlayWithInstanceID:@"0" Speed:@"1"];
Check the UPnP specs for the full set of available commands and their (and the parameters) specific meaning.
For the above AVTransport service, the specifications can be found here : http://www.upnp.org/specs/av/UPnP-av-AVTransport-v1-Service.pdf
Kind regards,
Bruno
Volume is set in RenderingControl, not in AVTransport.
A standard device have 3 services (R is required, O is optional):
See 2.2 in: http://www.upnp.org/specs/av/UPnP-av-MediaRenderer-v1-Device.pdf
Volume can be set with "RenderingControl".
See the action "SetVolume" at 2.4.30. in : http://www.upnp.org/specs/av/UPnP-av-RenderingControl-v1-Service.pdf
In upnpx it will be something like this:
int v = 50;
[[device renderingControl] SetVolumeWithInstanceID:@"0" Channel:@"Master" DesiredVolume:[NSString stringWithFormat:@"%d", (int)v] ];
NSLog(@"AvTransport is %@", [render avTransport]);
[[render avTransport] SetPlayModeWithInstanceID:@"0" NewPlayMode:@"NORMAL"];
[[render avTransport] SetAVTransportURIWithInstanceID:@"ABC" CurrentURI:@"http://www.w3schools.com/html5/movie.mp4" CurrentURIMetaData:@"" ];
[[render avTransport] PlayWithInstanceID:@"ABC" Speed:@"1"];
{
AVTransportURI = "";
AVTransportURIMetaData = "";
CurrentMediaDuration = "0:00:00";
CurrentPlayMode = NORMAL;
CurrentRecordQualityMode = "NOT_IMPLEMENTED";
CurrentTrack = 0;
CurrentTrackDuration = "0:00:00";
CurrentTrackMetaData = "";
CurrentTrackURI = "";
CurrentTransportActions = "";
InstanceID = "NOT_IMPLEMENTED";
NextAVTransportURI = "NOT_IMPLEMENTED";
NextAVTransportURIMetaData = "NOT_IMPLEMENTED";
NumberOfTracks = 0;
PlaybackStorageMedium = "NETWORK,NONE";
PossiblePlaybackStorageMedia = "NETWORK,NONE";
PossibleRecordQualityModes = "NOT_IMPLEMENTED";
PossibleRecordStorageMedia = "NOT_IMPLEMENTED";
RecordMediumWriteStatus = "NOT_IMPLEMENTED";
RecordStorageMedium = "NOT_IMPLEMENTED";
TransportPlaySpeed = 1;
TransportState = "NO_MEDIA_PRESENT";
TransportStatus = OK;
}
}
2012-05-03 17:01:05.069 upnpxdemo[41697:12b03] New event: {
AVTransportURI = "http://www.w3schools.com/html5/movie.mp4";
CurrentMediaDuration = "0:00:00";
CurrentPlayMode = NORMAL;
CurrentRecordQualityMode = "NOT_IMPLEMENTED";
CurrentTrackDuration = "0:00:00";
InstanceID = "NOT_IMPLEMENTED";
NextAVTransportURI = "NOT_IMPLEMENTED";
NextAVTransportURIMetaData = "NOT_IMPLEMENTED";
PlaybackStorageMedium = "NETWORK,NONE";
PossiblePlaybackStorageMedia = "NETWORK,NONE";
PossibleRecordQualityModes = "NOT_IMPLEMENTED";
PossibleRecordStorageMedia = "NOT_IMPLEMENTED";
RecordMediumWriteStatus = "NOT_IMPLEMENTED";
RecordStorageMedium = "NOT_IMPLEMENTED";
TransportPlaySpeed = 1;
TransportState = "NO_MEDIA_PRESENT";
TransportStatus = OK;
}
Although is say InstanceID = "NOT_IMPLEMENTED"; can you try instance id @"0" (like you already did with SetPlayMode)?
[[render avTransport] SetAVTransportURIWithInstanceID:@"0" CurrentURI:@"http://www.w3schools.com/html5/movie.mp4" 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/"><item><dc:title>Test</dc:title><upnp:class>object.item.videoItem</upnp:class><res protocolInfo="file-get:*:video/mp4::DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00000000001000000000000000000000">http://www.w3schools.com/html5/movie.mp4</res></item></DIDL-Lite>" ];