예제 #1
0
        private void SetMarkers()
        {
            mediaPlayer.MediaPlayer.PlaybackMediaMarkers.Clear();
            var skips = Video.Markers.Where(x => x.Action == ActionType.Skip);

            skips = skips.OrderBy(x => x.StartPosition);
            skips = MergeOVerlaying(skips.ToList());

            foreach (var marker in skips)
            {
                if (marker.TillEnd)
                {
                    TimeSpan duration = GetNaturalDuration();

                    var markerStart = duration.Subtract(marker.TillEndDuration);
                    var isBigger    = markerStart > new TimeSpan(0);
                    if (isBigger)
                    {
                        var playbackMarker = new PlaybackMediaMarker(markerStart, ActionType.Skip.ToString(), mediaPlayer.MediaPlayer.PlaybackSession.NaturalDuration.ToString());
                        mediaPlayer.MediaPlayer.PlaybackMediaMarkers.Insert(playbackMarker);
                    }
                }
                else
                {
                    var playbackMarker = new PlaybackMediaMarker(marker.StartPosition, ActionType.Skip.ToString(), marker.EndPosition.ToString());
                    mediaPlayer.MediaPlayer.PlaybackMediaMarkers.Insert(playbackMarker);
                }
            }
        }
예제 #2
0
        private void PlayMarker_Click(object sender, RoutedEventArgs e)
        {
            if (sender is Button playMarker)
            {
                var marker = (Markers)playMarker.DataContext;
                mediaPlayer.MediaPlayer.PlaybackMediaMarkers.Clear();
                var endPlaybackMarker = new PlaybackMediaMarker(marker.EndPosition, ActionType.RepeatSingle.ToString(), marker.StartPosition.ToString());

                mediaPlayer.MediaPlayer.PlaybackMediaMarkers.Insert(endPlaybackMarker);
                mediaPlayer.MediaPlayer.PlaybackSession.Position = marker.StartPosition;
                mediaPlayer.MediaPlayer.Play();
                resetRepeatButton.Visibility = Visibility.Visible;
            }
        }