void KTimelineSlider_Loaded(object sender, RoutedEventArgs e) { if (_parentPlayer == null) { _parentPlayer = this.TryFindParent <KMediaPlayer>(); } if (this.IsUpper) { this.SetBinding(Slider.ValueProperty, new Binding(_parentPlayer.EndBindingPath) { Mode = BindingMode.TwoWay }); } else { this.SetBinding(Slider.ValueProperty, new Binding(_parentPlayer.StartBindingPath) { Mode = BindingMode.TwoWay }); } this.PreviewMouseLeftButtonDown -= KTimelineSlider_PreviewMouseLeftButtonDown; this.ValueChanged -= KTimelineSlider_ValueChanged; this.PreviewMouseLeftButtonDown += KTimelineSlider_PreviewMouseLeftButtonDown; this.ValueChanged += KTimelineSlider_ValueChanged; }
/// <summary> /// Obtient le format de la vidéo en cours de lecture. /// </summary> /// <returns> /// Le format ou null s'il est inaccessible ou si aucune vidéo n'est chargée. /// </returns> public MediaInfo GetFormat() { if (KMediaPlayer != null) { KMediaPlayer.UpdateMediaInfo(); return(KMediaPlayer.CurrentMediaInfo); } else { return(null); } }
private void OnMediaPlayerActionEvent(MediaPlayerActionEvent e) { if (e.Sender == AssociatedObject.DataContext || e.Sender == AssociatedObject) { #if DEBUG_QUEUEING TraceManager.TraceDebug($"Execute : {e.Id} - {e.Action}"); #endif Action action = null; switch (e.Action) { case MediaPlayerAction.Play: action = () => MediaPlayer.Play(); break; case MediaPlayerAction.Pause: action = () => MediaPlayer.Pause(); break; case MediaPlayerAction.PlayPause: if (MediaPlayer.IsPlaying) { action = () => MediaPlayer.Pause(); } else { action = () => MediaPlayer.Play(); } break; case MediaPlayerAction.Stop: action = () => MediaPlayer.Stop(); break; case MediaPlayerAction.Mute: if (KMediaPlayer != null) { action = () => KMediaPlayer.Mute(); } break; case MediaPlayerAction.Unmute: if (KMediaPlayer != null) { action = () => KMediaPlayer.Unmute(); } break; case MediaPlayerAction.ToggleMute: if (KMediaPlayer != null) { action = () => KMediaPlayer.ToggleMute(); } break; case MediaPlayerAction.StepBackward: action = () => MediaPlayer.StepBackward(); break; case MediaPlayerAction.StepForward: action = () => MediaPlayer.StepForward(); break; case MediaPlayerAction.ShowTimeline: if (KMediaPlayer != null) { action = () => KMediaPlayer.TimelineShow(e.ShowTimelineStart, e.ShowTimelineEnd, true); } break; case MediaPlayerAction.ResetTimeline: if (KMediaPlayer != null) { action = () => KMediaPlayer.TimelineReset(); } break; case MediaPlayerAction.ActivateMediaPlayerService: action = () => IoC.Resolve <IServiceBus>().Register <IMediaPlayerService>(this); break; case MediaPlayerAction.UnactivateMediaPlayerService: action = () => IoC.Resolve <IServiceBus>().Unregister <IMediaPlayerService>(); break; case MediaPlayerAction.ExecuteWhenDispatcherReady: action = e.ActionWhenPlayerDispatcherReady; break; case MediaPlayerAction.ExecuteOnPlayerWhenDispatcherReady: action = () => e.ActionOnPlayerWhenPlayerDispatcherReady(MediaPlayer); break; case MediaPlayerAction.ToggleScreenMode: action = () => { if (KMediaPlayer.ScreenModeCommand != null && KMediaPlayer.ScreenModeCommand.CanExecute(null)) { KMediaPlayer.ScreenModeCommand.Execute(null); } }; break; case MediaPlayerAction.ShowAnnotations: action = () => { AnnotationsAdornment.SetAnnotationsIsVisible(KMediaPlayer.MediaElement.VideoImage, true); AnnotationsAdornment.SetIsInEditMode(KMediaPlayer.MediaElement.VideoImage, true); }; break; case MediaPlayerAction.HideAnnotations: action = () => { if (AnnotationsAdornment.GetIsVisible(KMediaPlayer.MediaElement.VideoImage)) { AnnotationsAdornment.DestroyAnnotations(KMediaPlayer.MediaElement.VideoImage); } }; break; default: break; } if (action != null) { if (e.SendWhenPlayerDispatcherReady) { Action <Action> onDispatcherAction = (a) => { if (MediaPlayer is KMediaPlayer) { if (KMediaPlayer.MediaElement != null) { KMediaPlayer.MediaElement.BeginInvokeOnMediaPlayerDispatcher((Action) delegate { Dispatcher.Invoke(a); }); } else { a(); } } else if (MediaPlayer is KMiniPlayer) { if (KMiniPlayer.MediaElement != null) { KMiniPlayer.MediaElement.BeginInvokeOnMediaPlayerDispatcher((Action) delegate { Dispatcher.Invoke(a); }); } else { a(); } } }; if (MediaPlayer is KMediaPlayer) { if (KMediaPlayer.MediaElement == null) { Dispatcher.BeginInvoke(onDispatcherAction, System.Windows.Threading.DispatcherPriority.Loaded, action); } else { onDispatcherAction(action); } } else if (MediaPlayer is KMiniPlayer) { if (KMiniPlayer.MediaElement == null) { Dispatcher.BeginInvoke(onDispatcherAction, System.Windows.Threading.DispatcherPriority.Loaded, action); } else { onDispatcherAction(action); } } } else { action(); } } } }