From 8c5af10ab0339bcfb82e2923233216e740f79d14 Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 18 Aug 2020 22:00:13 +0100 Subject: [PATCH] Don't pass INDEX_UNSET to ExoPlayer seek methods It's not valid, and will cause IllegalSeekPositionException to be thrown PiperOrigin-RevId: 327301325 --- .../android/exoplayer2/ext/media2/PlayerWrapper.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java index f6cdb1e243..dee10056d7 100644 --- a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java +++ b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java @@ -294,7 +294,7 @@ import java.util.List; @Nullable public androidx.media2.common.MediaItem getCurrentMediaItem() { int index = getCurrentMediaItemIndex(); - return (index != C.INDEX_UNSET) ? media2Playlist.get(index) : null; + return index == C.INDEX_UNSET ? null : media2Playlist.get(index); } public boolean prepare() { @@ -307,9 +307,9 @@ import java.util.List; public boolean play() { if (player.getPlaybackState() == Player.STATE_ENDED) { - int currentWindowIndex = getCurrentMediaItemIndex(); boolean seekHandled = - controlDispatcher.dispatchSeekTo(player, currentWindowIndex, /* positionMs= */ 0); + controlDispatcher.dispatchSeekTo( + player, player.getCurrentWindowIndex(), /* positionMs= */ 0); if (!seekHandled) { return false; } @@ -332,8 +332,7 @@ import java.util.List; } public boolean seekTo(long position) { - int currentWindowIndex = getCurrentMediaItemIndex(); - return controlDispatcher.dispatchSeekTo(player, currentWindowIndex, position); + return controlDispatcher.dispatchSeekTo(player, player.getCurrentWindowIndex(), position); } public long getCurrentPosition() {