/// <summary> /// Changes current player position based on given amount and interval /// </summary> /// <param name="howMany">Amount of navigation intervals. Can be negative value.</param> /// <param name="interval">Navigation interval</param> public void Navigate(int howMany, NavigationInterval interval) { if (IsBackgroundTaskRunning && (MediaPlayer.CurrentState == Playing || MediaPlayer.CurrentState == Paused)) { BackgroundMediaPlayer.SendMessageToBackground(new ValueSet { { Keys.NavigationAmount, howMany }, { Keys.NavigationInterval, (int)interval } }); } }
public void Navigate(int howMany, NavigationInterval interval) { if (!(mediaPlayer.CurrentState == Playing || mediaPlayer.CurrentState == Paused)) { return; } switch (interval) { case NavigationInterval.Second: updatePosition(howMany); break; case NavigationInterval.Minute: updatePosition(howMany * 60); break; case NavigationInterval.Hour: updatePosition(howMany * 60 * 60); break; case NavigationInterval.Track: case NavigationInterval.Episode: StartTrackAt(playlist.CurrentTrackIndex + howMany); break; } }