コード例 #1
0
        public void StartBackgroundPlayback()
        {
            if (!IsEnabled)
            {
                return;
            }

            IScreenControl screenControl = ServiceRegistration.Get <IScreenControl>();
            IVideoPlayerSynchronizationStrategy current = screenControl.VideoPlayerSynchronizationStrategy;

            if (current != _backgroundPlayerStrategy)
            {
                // We replace the default strategy with our own to prefer the video background player.
                screenControl.VideoPlayerSynchronizationStrategy = _backgroundPlayerStrategy;
            }

            IPlayerManager playerManager = ServiceRegistration.Get <IPlayerManager>();

            if (_backgroundPsc == null)
            {
                _backgroundPsc = playerManager.OpenSlot();
            }

            if (_backgroundPsc == null)
            {
                return;
            }

            // If we already have a player active, don't start a new one.
            IPlayer currentPlayer = _backgroundPsc.CurrentPlayer;

            if (currentPlayer != null && currentPlayer.State == PlayerState.Active)
            {
                return;
            }

            try
            {
                _backgroundPsc.Play(_video, StartTime.AtOnce);
                BaseDXPlayer player = _backgroundPsc.CurrentPlayer as BaseDXPlayer;
                if (player != null)
                {
                    player.AutoRepeat = true;
                }

                VideoPlayer = player as ISharpDXVideoPlayer;
            }
            catch (Exception ex)
            {
                ServiceRegistration.Get <ILogger>().Error("VideoBackgroundModel: Error opening MediaItem {0} for background playback!", ex, _videoFilename);
            }
        }
コード例 #2
0
        protected bool DoPlay_NoLock(MediaItem mediaItem, StartTime startTime)
        {
            if (mediaItem == null)
            {
                return(false);
            }

            _currentMediaItem = mediaItem;
            IPlayerSlotController psc = _slotController;

            if (psc == null)
            {
                return(false);
            }
            return(!psc.IsClosed && psc.Play(mediaItem, startTime));
        }
コード例 #3
0
        protected bool DoPlay_NoLock(MediaItem mediaItem, StartTime startTime)
        {
            if (mediaItem == null)
            {
                return(false);
            }
            IServerConnectionManager scm = ServiceRegistration.Get <IServerConnectionManager>();
            IContentDirectory        cd  = scm.ContentDirectory;

            if (cd != null)
            {
                cd.NotifyPlayback(mediaItem.MediaItemId);
            }
            _currentMediaItem = mediaItem;
            IPlayerSlotController psc = _slotController;

            if (psc == null)
            {
                return(false);
            }
            return(!psc.IsClosed && psc.Play(mediaItem, startTime));
        }