/// <inheritdoc /> public void SkipNext() { OnInteracting(); VisualMarker marker = VisualMarkers .Where(m => m.IsSeekable && m.Time > Position && m.Time < MaxPosition) .OrderBy(m => m.Time).FirstOrDefault(); OnSkipNext(marker); }
/// <inheritdoc /> public void SkipPrevious() { OnInteracting(); VisualMarker marker = VisualMarkers .Where(m => m.IsSeekable && m.Time.Add(SkipPreviousThreshold) < Position && m.Time < MaxPosition) .OrderByDescending(m => m.Time).FirstOrDefault(); OnSkipPrevious(marker); }
void LoadChapters() { chapterMarkers = new List <VisualMarker>(); if (AutoCreateChaptersFromMarkers) { foreach (var chapter in MediaPlayer.Markers.Where(m => m.Type == ChapterMarkerType)) { var marker = new VisualMarker() { Text = chapter.Text, Time = chapter.Time, IsSeekable = true }; if (MarkerStyle != null) { marker.Style = MarkerStyle; } chapterMarkers.Add(marker); MediaPlayer.VisualMarkers.Add(marker); } } if (AutoCreateDefaultChapters) { var chapterLength = MediaPlayer.Duration.TotalSeconds / DefaultChapterCount; for (int i = 0; i <= DefaultChapterCount; i++) { var marker = new VisualMarker() { Time = TimeSpan.FromSeconds(chapterLength * i), IsSeekable = true }; chapterMarkers.Add(marker); MediaPlayer.VisualMarkers.Add(marker); } } }
internal MediaPlayerMarkerActionEventArgs(VisualMarker marker) { Marker = marker; }
/// <inheritdoc /> protected override void OnSkipNext(VisualMarker marker) { MediaPlayer.SkipAhead(marker != null ? GetMediaPlayerPosition(marker.Time) : MediaPlayer.LivePosition.GetValueOrDefault(MediaPlayer.EndTime)); }
/// <inheritdoc /> protected override void OnSkipPrevious(VisualMarker marker) { MediaPlayer.SkipBack(marker != null ? GetMediaPlayerPosition(marker.Time) : MediaPlayer.StartTime); }
/// <summary> /// Notifies the subclass to skip ahead to the next chapter/marker /// </summary> /// <param name="marker">The marker to seek to. Null if to the end.</param> protected abstract void OnSkipNext(VisualMarker marker);
/// <summary> /// Notifies the subclass to skip back to the previous chapter/marker /// </summary> /// <param name="marker">The marker to seek to. Null if to the beginning.</param> protected abstract void OnSkipPrevious(VisualMarker marker);
void LoadChapters() { chapterMarkers = new List<VisualMarker>(); if (AutoCreateChaptersFromMarkers) { foreach (var chapter in MediaPlayer.Markers.Where(m => m.Type == ChapterMarkerType)) { var marker = new VisualMarker() { Text = chapter.Text, Time = chapter.Time, IsSeekable = true }; if (MarkerStyle != null) marker.Style = MarkerStyle; chapterMarkers.Add(marker); MediaPlayer.VisualMarkers.Add(marker); } } if (AutoCreateDefaultChapters) { var chapterLength = MediaPlayer.Duration.TotalSeconds / DefaultChapterCount; for (int i = 0; i <= DefaultChapterCount; i++) { var marker = new VisualMarker() { Time = TimeSpan.FromSeconds(chapterLength * i), IsSeekable = true }; chapterMarkers.Add(marker); MediaPlayer.VisualMarkers.Add(marker); } } }