diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/WebvttPlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/WebvttPlaybackTest.java index fa170d4c78..3579519754 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/WebvttPlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/WebvttPlaybackTest.java @@ -354,7 +354,9 @@ public class WebvttPlaybackTest { private static void stallPlayerUntilCondition(ExoPlayer player, AtomicBoolean condition) throws Exception { long timeoutTimeMs = Clock.DEFAULT.currentTimeMillis() + RobolectricUtil.DEFAULT_TIMEOUT_MS; - while (!condition.get()) { + while (!condition.get() + && (player.getPlaybackState() == Player.STATE_READY + || player.getPlaybackState() == Player.STATE_BUFFERING)) { // Trigger more work at the current time until the condition is fulfilled. if (Clock.DEFAULT.currentTimeMillis() >= timeoutTimeMs) { throw new TimeoutException(); @@ -363,5 +365,8 @@ public class WebvttPlaybackTest { player.play(); run(player).untilPendingCommandsAreFullyHandled(); } + if (player.getPlayerError() != null) { + throw player.getPlayerError(); + } } }