diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java index 7af3e990af..610b5d1a84 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java @@ -78,6 +78,7 @@ public abstract class ExoHostedTest implements HostedTest, ExoPlayer.EventListen private SimpleExoPlayer player; private Surface surface; private ExoPlaybackException playerError; + private ExoPlayer.EventListener playerEventListener; private boolean playerWasPrepared; private boolean playerFinished; private boolean playing; @@ -129,6 +130,16 @@ public abstract class ExoHostedTest implements HostedTest, ExoPlayer.EventListen } } + /** + * Sets an {@link ExoPlayer.EventListener} to listen for ExoPlayer events during the test. + */ + public final void setEventListener(ExoPlayer.EventListener eventListener) { + this.playerEventListener = eventListener; + if (player != null) { + player.addListener(eventListener); + } + } + // HostedTest implementation @Override @@ -141,6 +152,9 @@ public abstract class ExoHostedTest implements HostedTest, ExoPlayer.EventListen DrmSessionManager drmSessionManager = buildDrmSessionManager(userAgent); player = buildExoPlayer(host, surface, trackSelector, drmSessionManager); player.prepare(buildSource(host, Util.getUserAgent(host, userAgent), bandwidthMeter)); + if (playerEventListener != null) { + player.addListener(playerEventListener); + } player.addListener(this); player.setAudioDebugListener(this); player.setVideoDebugListener(this);