private void OnPlay() { TraceLogger.WriteLine("Event Fired! - Play -- "); VolumeChanged(); var avTransportUri = _transportServiceImpl.StateVariables["AVTransportURI"].Value.ToString(); var avTransportUriMetadata = _transportServiceImpl.StateVariables["AVTransportURIMetaData"].Value.ToString(); switch (_playerType) { case ContentType.Audio: if (_isPaused) { ChangeUPnPAVTransportServiceStateToPlaying(); ResumePlayer <UPnPRendererAudioPlayer>(); break; } StopPlayer <UPnPRendererAudioPlayer>(); var audioItem = UPnPMediaItemFactory.CreateAudioItem(avTransportUri); audioItem.AddMetaDataToMediaItem(avTransportUriMetadata); PlayItemsModel.CheckQueryPlayAction(audioItem); break; case ContentType.Image: var imageItem = UPnPMediaItemFactory.CreateImageItem(avTransportUri); imageItem.AddMetaDataToMediaItem(avTransportUriMetadata); var ic = GetPlayerContext <UPnPRendererImagePlayer>(); if (ic != null) { ic.DoPlay(imageItem); } else { PlayItemsModel.CheckQueryPlayAction(imageItem); } break; case ContentType.Video: if (_isPaused) { Logger.Debug("Resume!!"); ChangeUPnPAVTransportServiceStateToPlaying(); ResumePlayer <UPnPRendererVideoPlayer>(); break; } Logger.Debug("NO Resume!!"); StopPlayer <UPnPRendererVideoPlayer>(); var videoItem = UPnPMediaItemFactory.CreateVideoItem(avTransportUri); videoItem.AddMetaDataToMediaItem(avTransportUriMetadata); PlayItemsModel.CheckQueryPlayAction(videoItem); break; case ContentType.Unknown: Logger.Warn("Can't play because of unknown player type"); return; // we don't want to start the timer } _timer.Enabled = true; _timer.AutoReset = true; }