diff --git a/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java b/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java index f9f65c8701..45a0c59645 100644 --- a/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java +++ b/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java @@ -274,17 +274,17 @@ public class SessionPlayerConnectorTest { @Test @SmallTest @SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT) - public void getCurrentPosition_whenIdleState_returnsUnknownTime() { + public void getCurrentPosition_whenIdleState_returnsDefaultPosition() { assertThat(sessionPlayerConnector.getPlayerState()).isEqualTo(SessionPlayer.PLAYER_STATE_IDLE); - assertThat(sessionPlayerConnector.getCurrentPosition()).isEqualTo(SessionPlayer.UNKNOWN_TIME); + assertThat(sessionPlayerConnector.getCurrentPosition()).isEqualTo(0); } @Test @SmallTest @SdkSuppress(minSdkVersion = Build.VERSION_CODES.KITKAT) - public void getBufferedPosition_whenIdleState_returnsUnknownTime() { + public void getBufferedPosition_whenIdleState_returnsDefaultPosition() { assertThat(sessionPlayerConnector.getPlayerState()).isEqualTo(SessionPlayer.PLAYER_STATE_IDLE); - assertThat(sessionPlayerConnector.getBufferedPosition()).isEqualTo(SessionPlayer.UNKNOWN_TIME); + assertThat(sessionPlayerConnector.getBufferedPosition()).isEqualTo(0); } @Test 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 dee10056d7..888eccbe94 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 @@ -336,18 +336,15 @@ import java.util.List; } public long getCurrentPosition() { - Assertions.checkState(getState() != SessionPlayer.PLAYER_STATE_IDLE); - return Math.max(0, player.getCurrentPosition()); + return player.getCurrentPosition(); } public long getDuration() { - Assertions.checkState(getState() != SessionPlayer.PLAYER_STATE_IDLE); long duration = player.getDuration(); - return duration == C.TIME_UNSET ? -1 : duration; + return duration == C.TIME_UNSET ? SessionPlayer.UNKNOWN_TIME : duration; } public long getBufferedPosition() { - Assertions.checkState(getState() != SessionPlayer.PLAYER_STATE_IDLE); return player.getBufferedPosition(); } diff --git a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnector.java b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnector.java index ae85dc4511..d4aa888a1a 100644 --- a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnector.java +++ b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnector.java @@ -440,7 +440,7 @@ public final class SessionPlayerConnector extends SessionPlayer { } reset(); - this.runPlayerCallableBlockingInternal( + this.runPlayerCallableBlocking( /* callable= */ () -> { player.close(); return null; @@ -504,7 +504,7 @@ public final class SessionPlayerConnector extends SessionPlayer { state = PLAYER_STATE_IDLE; mediaItemToBuffState.clear(); } - this.runPlayerCallableBlockingInternal( + this.runPlayerCallableBlocking( /* callable= */ () -> { player.reset(); return null; @@ -596,13 +596,6 @@ public final class SessionPlayerConnector extends SessionPlayer { } private T runPlayerCallableBlocking(Callable callable) { - synchronized (stateLock) { - Assertions.checkState(!closed); - } - return runPlayerCallableBlockingInternal(callable); - } - - private T runPlayerCallableBlockingInternal(Callable callable) { SettableFuture future = SettableFuture.create(); boolean success = taskHandler.postOrRun(