public VideoPlayerCaptionBlockRegion()
 {
     System.Action<MediaMarkerManager<TimedTextElement>, TimedTextElement> action = null;
     System.Action<MediaMarkerManager<TimedTextElement>, TimedTextElement, bool> action2 = null;
     RoutedEventHandler handler = null;
     SizeChangedEventHandler handler2 = null;
     this._activeElements = new Dictionary<CaptionElement, UIElement>();
     this._captionManager = new MediaMarkerManager<TimedTextElement>();
     this._captionManager.SeekingSearchWindow = new TimeSpan?(TimeSpan.FromMilliseconds(60000.0));
     if (action == null)
     {
         action = (s, c) => this.HideCaption(c);
     }
     this._captionManager.MarkerLeft += action;
     if (action2 == null)
     {
         action2 = (s, c, f) => this.ShowCaption(c);
     }
     this._captionManager.MarkerReached += action2;
     if (handler == null)
     {
         handler = (s, e) => this.RedrawActiveCaptions();
     }
     base.Loaded += handler;
     this.InitializeComponent();
     if (handler2 == null)
     {
         handler2 = (s, e) => this.UpdateSize();
     }
     base.SizeChanged += handler2;
 }
Exemplo n.º 2
0
        /// <inheritdoc />
        protected override bool OnActivate()
        {
            var mediaContainer = MediaPlayer.Containers.OfType <Panel>().FirstOrDefault(c => c.Name == MediaPlayerTemplateParts.MediaContainer);

            captionsContainer = mediaContainer.Children.OfType <Panel>().FirstOrDefault(c => c.Name == MediaPlayerTemplateParts.CaptionsContainer);
            if (captionsContainer != null)
            {
                markerManager                = new MediaMarkerManager();
                markerManager.MarkerLeft    += MarkerManager_MarkerLeft;
                markerManager.MarkerReached += MarkerManager_MarkerReached;
                captionsPanel                = new WebVTTPanel();
                if (CaptionsPanelStyle != null)
                {
                    captionsPanel.Style = CaptionsPanelStyle;
                }
                MediaPlayer.IsCaptionsActive = (MediaPlayer.SelectedCaption as Caption != null);
                captionsContainer.Children.Add(captionsPanel);
                UpdateCaption(MediaPlayer.SelectedCaption as Caption);

                MediaPlayer.PositionChanged        += MediaPlayer_PositionChanged;
                MediaPlayer.SelectedCaptionChanged += MediaPlayer_SelectedCaptionChanged;
                MediaPlayer.IsLiveChanged          += MediaPlayer_IsLiveChanged;
                if (MediaPlayer.IsLive)
                {
                    InitializeTimer();
                }

                return(true);
            }
            return(false);
        }
        public CaptionBlockRegion()
        {
            _activeElements = new Dictionary<CaptionElement, UIElement>();
            _captionManager = new MediaMarkerManager<TimedTextElement>();
            _captionManager.SeekingSearchWindow = TimeSpan.FromMilliseconds(DefaultMaximumCaptionSeekSearchWindowMillis);
            _captionManager.MarkerLeft += (s, c) => HideCaption(c);
            _captionManager.MarkerReached += (s, c, f) => ShowCaption(c);

            this.Loaded += (s, e) => RedrawActiveCaptions();
            InitializeComponent();
            this.SizeChanged += (s, e) => UpdateSize();
        }
        public CaptionBlockRegion()
        {
            _activeElements = new Dictionary <CaptionElement, UIElement>();
            _captionManager = new MediaMarkerManager <TimedTextElement>();
            _captionManager.SeekingSearchWindow = TimeSpan.FromMilliseconds(DefaultMaximumCaptionSeekSearchWindowMillis);
            _captionManager.MarkerLeft         += (s, c) => HideCaption(c);
            _captionManager.MarkerReached      += (s, c, f) => ShowCaption(c);

            this.Loaded += (s, e) => RedrawActiveCaptions();
            InitializeComponent();
            this.SizeChanged += (s, e) => UpdateSize();
        }
Exemplo n.º 5
0
 /// <inheritdoc />
 protected override void OnDeactivate()
 {
     MediaPlayer.PositionChanged        -= MediaPlayer_PositionChanged;
     MediaPlayer.SelectedCaptionChanged -= MediaPlayer_SelectedCaptionChanged;
     MediaPlayer.IsLiveChanged          -= MediaPlayer_IsLiveChanged;
     MediaPlayer.IsCaptionsActive        = false;
     captionsContainer.Children.Remove(captionsPanel);
     captionsContainer = null;
     captionsPanel.Clear();
     captionsPanel                = null;
     markerManager.MarkerLeft    -= MarkerManager_MarkerLeft;
     markerManager.MarkerReached -= MarkerManager_MarkerReached;
     markerManager.Clear();
     markerManager  = null;
     IsSourceLoaded = false;
 }
        public SMFPlayer()
        {
            DefaultStyleKey = typeof(SMFPlayer);

            _logger = new Logger();
            _videoDoubleClickMonitor = new DoubleClickMonitor();
            _positionTimer = new DispatcherTimer();

            Playlist = new ObservableCollection<PlaylistItem>();
            HeuristicsPluginRequiredMetadata = new MetadataCollection();
            GlobalConfigMetadata = new MetadataCollection();

            _captionManager = new MediaMarkerManager<CaptionRegion>
            {
                SeekingSearchWindow = TimeSpan.FromMilliseconds(DefaultMaximumCaptionSeekSearchWindowMillis)
            };
            _captionManager.MarkerLeft += CaptionManager_MarkerLeft;
            _captionManager.MarkerReached += CaptionManager_MarkerReached;

            _timelineMarkerManager = new TimelineMarkerManager();
            _timelineMarkerManager.MarkerLeft += MarkerManager_MarkerLeft;
            _timelineMarkerManager.MarkerReached += MarkerManager_MarkerReached;
            _timelineMarkerManager.MarkerSkipped += MarkerManager_MarkerSkipped;

            _adMarkerManager = new AdMarkerManager(this);
            _adMarkerManager.MarkerLeft += AdManager_MarkerLeft;
            _adMarkerManager.MarkerReached += AdManager_MarkerReached;
            _adMarkerManager.MarkerSkipped += AdManager_MarkerSkipped;

            if (!IsInDesignMode)
            {
#if !WINDOWS_PHONE && !OOB
                _offlineManager = new OfflineManager();
#endif
                PluginsManager = new PluginsManager();
                _logger.LogWriteSuccessful += Logger_LogWriteSuccessful;
                _logger.LogWriteErrorOccurred += Logger_LogWriteErrorOccurred;

                _videoDoubleClickMonitor.ElementDoubleClicked += (s, e) => MediaPresenterElement_DoubleClicked();
                _positionTimer.Interval = PositionUpdateInterval;
                _positionTimer.Tick += (s, e) => UpdateTimelinePositions();

#if !PROGRAMMATICCOMPOSITION
                PluginsManager.AddExternalPackageDownloadProgressChanged += PluginsManager_AddExternalPackageDownloadProgressChanged;
                PluginsManager.AddExternalPackageCompleted += PluginsManager_AddExternalPackageCompleted;
                PluginsManager.AddExternalPackageFailed += PluginsManager_AddExternalPackageFailed;
#endif

#if !WINDOWS_PHONE && !FULLSCREEN
                IsFullScreen = Application.Current.Host.Content.IsFullScreen;
                Application.Current.Host.Content.FullScreenChanged += Application_FullScreenChanged;
#endif
            }
        }
 private void CaptionManager_MarkerLeft(MediaMarkerManager<CaptionRegion> captionManager, CaptionRegion region)
 {
     OnCaptionRegionLeft(region);
 }
 private void CaptionManager_MarkerReached(MediaMarkerManager<CaptionRegion> captionManager, CaptionRegion region, bool skippedInto)
 {
     OnCaptionRegionReached(region);
 }
 private void MarkerManager_MarkerLeft(MediaMarkerManager<TimelineMediaMarker> markerManager, TimelineMediaMarker mediaMarker)
 {
     OnTimelineMarkerLeft(mediaMarker);
 }
 private void MarkerManager_MarkerReached(MediaMarkerManager<TimelineMediaMarker> markerManager, TimelineMediaMarker mediaMarker, bool seekedInto)
 {
     OnTimelineMarkerReached(mediaMarker, seekedInto);
 }
 private void MarkerManager_MarkerSkipped(MediaMarkerManager<TimelineMediaMarker> markerManager, TimelineMediaMarker mediaMarker)
 {
     OnTimelineMarkerSkipped(mediaMarker);
 }
 private void AdManager_MarkerLeft(MediaMarkerManager<AdMarker> markerManager, AdMarker mediaMarker)
 {
     OnAdMarkerLeft(mediaMarker);
 }
 private void AdManager_MarkerReached(MediaMarkerManager<AdMarker> markerManager, AdMarker mediaMarker, bool seekedInto)
 {
     OnAdMarkerReached(mediaMarker, seekedInto);
 }
 private void AdManager_MarkerSkipped(MediaMarkerManager<AdMarker> markerManager, AdMarker mediaMarker)
 {
     OnAdMarkerSkipped(mediaMarker);
 }