protected void NotifyResumeState(IPlayer player)
        {
            IResumablePlayer resumablePlayer = player as IResumablePlayer;

            if (resumablePlayer == null)
            {
                return;
            }

            // Get the current MediaItem ID at this time, later the PSC is already closed (in case of PlayerEnded state) and MediaItem information is lost.
            object oContext;

            if (!ContextVariables.TryGetValue(PlayerContext.KEY_PLAYER_CONTEXT, out oContext) || !(oContext is IPlayerContext))
            {
                return;
            }

            IPlayerContext playerContext = (IPlayerContext)oContext;

            if (playerContext.CurrentMediaItem == null)
            {
                return;
            }

            IResumeState resumeState;

            if (resumablePlayer.GetResumeState(out resumeState))
            {
                PlayerManagerMessaging.SendPlayerResumeStateMessage(this, playerContext.CurrentMediaItem.MediaItemId, resumeState);
            }
        }
예제 #2
0
        protected void NotifyResumeState(IPlayer player)
        {
            IResumablePlayer resumablePlayer = player as IResumablePlayer;

            if (resumablePlayer == null)
            {
                return;
            }

            // Get the current MediaItem ID at this time, later the PSC is already closed (in case of PlayerEnded state) and MediaItem information is lost.
            object oContext;

            if (!ContextVariables.TryGetValue(PlayerContext.KEY_PLAYER_CONTEXT, out oContext) || !(oContext is IPlayerContext))
            {
                return;
            }

            IPlayerContext playerContext = (IPlayerContext)oContext;

            if (playerContext.CurrentMediaItem == null)
            {
                return;
            }

            try
            {
                IResumeState resumeState;
                if (resumablePlayer.GetResumeState(out resumeState))
                {
                    PlayerManagerMessaging.SendPlayerResumeStateMessage(this, playerContext.CurrentMediaItem, resumeState);
                }
            }
            catch (Exception e)
            {
                ServiceRegistration.Get <ILogger>().Warn("PlayerSlotController: Error getting resume state from player '{0}'", e, resumablePlayer);
            }
        }