diff --git a/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java index 6ff0853d9b..f1b54153a1 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/BasePlayer.java @@ -79,7 +79,7 @@ public abstract class BasePlayer implements Player { return timeline.isEmpty() ? C.INDEX_UNSET : timeline.getNextWindowIndex( - getCurrentWindowIndex(), getRepeatMode(), getShuffleModeEnabled()); + getCurrentWindowIndex(), getRepeatModeForNavigation(), getShuffleModeEnabled()); } @Override @@ -88,7 +88,7 @@ public abstract class BasePlayer implements Player { return timeline.isEmpty() ? C.INDEX_UNSET : timeline.getPreviousWindowIndex( - getCurrentWindowIndex(), getRepeatMode(), getShuffleModeEnabled()); + getCurrentWindowIndex(), getRepeatModeForNavigation(), getShuffleModeEnabled()); } @Override @@ -129,4 +129,10 @@ public abstract class BasePlayer implements Player { ? C.TIME_UNSET : timeline.getWindow(getCurrentWindowIndex(), window).getDurationMs(); } + + @RepeatMode + private int getRepeatModeForNavigation() { + @RepeatMode int repeatMode = getRepeatMode(); + return repeatMode == REPEAT_MODE_ONE ? REPEAT_MODE_OFF : repeatMode; + } }