예제 #1
0
 private void MediaPlayer_MediaEnded(object sender, MediaPlayerActionEventArgs e)
 {
     foreach (var trackingEvent in TrackingEvents.Where(t => t.PositionPercentage.HasValue && t.PositionPercentage.Value == 1).ToList())
     {
         OnTrackEvent(new PositionEventTrackedEventArgs(trackingEvent, false));
     }
 }
예제 #2
0
 private void MediaPlayer_MediaStarted(object sender, RoutedEventArgs e)
 {
     if (!MediaPlayer.StartupPosition.HasValue)
     {
         foreach (var trackingEvent in TrackingEvents.Where(t => t.PositionPercentage.HasValue && t.PositionPercentage.Value == 0).ToList())
         {
             OnTrackEvent(new PositionEventTrackedEventArgs(trackingEvent, false));
         }
     }
 }
예제 #3
0
 private void EvaluteTrackingEvents()
 {
     if (MediaPlayer.CurrentState == MediaElementState.Playing && startTime.HasValue)
     {
         PlayTime           = DateTime.Now.Subtract(startTime.Value);
         PlayTimePercentage = PlayTime.TotalSeconds / MediaPlayer.Duration.TotalSeconds;
         foreach (var playTimeTrackingEvent in TrackingEvents.Except(spentPlayTimeEvents).ToList())
         {
             if ((!playTimeTrackingEvent.PlayTimePercentage.HasValue && playTimeTrackingEvent.PlayTime <= PlayTime) || (playTimeTrackingEvent.PlayTimePercentage.HasValue && playTimeTrackingEvent.PlayTimePercentage <= PlayTimePercentage))
             {
                 spentPlayTimeEvents.Add(playTimeTrackingEvent);
                 OnTrackEvent(new EventTrackedEventArgs(playTimeTrackingEvent));
             }
         }
     }
 }
예제 #4
0
        /// <summary>
        /// Applying the default events which are set in the settings for the specific type.
        /// </summary>
        private void ApplyDefaultEvents()
        {
            var settings = GetBestFittingSettings();

            if (settings == null)
            {
                return;
            }
            settings.DefaultEvents.ForEach(eventDefinition =>
            {
                if (eventDefinition.EventType == Enums.EventType.UNKNOWN)
                {
                    throw new ArgumentException("The UNKNOWN value is not allowed to set!");
                }
                TrackingEvents.Add(eventDefinition);
                AddEventHandler(Element, eventDefinition, Element);
            });
        }