Esempio n. 1
0
        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;
        }