diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.java index 2b5ea11d94..f65cb39bfc 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.java @@ -212,6 +212,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener { private Exception exception; private TrackGroupArray trackGroups; private int positionDiscontinuityCount; + private boolean playerWasPrepared; private ExoPlayerTestRunner(PlayerFactory playerFactory, MediaSource mediaSource, RenderersFactory renderersFactory, MappingTrackSelector trackSelector, @@ -350,7 +351,9 @@ public final class ExoPlayerTestRunner implements Player.EventListener { if (periodIndices.isEmpty() && playbackState == Player.STATE_READY) { periodIndices.add(player.getCurrentPeriodIndex()); } - if (playbackState == Player.STATE_ENDED) { + playerWasPrepared |= playbackState != Player.STATE_IDLE; + if (playbackState == Player.STATE_ENDED + || (playbackState == Player.STATE_IDLE && playerWasPrepared)) { endedCountDownLatch.countDown(); } }