From b787852e71346ce96ae0f0687c62ba52f80e98b7 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Fri, 1 May 2015 20:11:57 +0100 Subject: [PATCH] Correctly stop previous renderers if prepare is called again. --- .../google/android/exoplayer/ExoPlayerImplInternal.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer/ExoPlayerImplInternal.java b/library/src/main/java/com/google/android/exoplayer/ExoPlayerImplInternal.java index 96019112e7..398aa431ac 100644 --- a/library/src/main/java/com/google/android/exoplayer/ExoPlayerImplInternal.java +++ b/library/src/main/java/com/google/android/exoplayer/ExoPlayerImplInternal.java @@ -247,7 +247,7 @@ import java.util.List; } private void prepareInternal(TrackRenderer[] renderers) { - rebuffering = false; + resetInternal(); this.renderers = renderers; for (int i = 0; i < renderers.length; i++) { if (renderers[i].isTimeSource()) { @@ -475,12 +475,13 @@ import java.util.List; } private void stopInternal() { - rebuffering = false; resetInternal(); + setState(ExoPlayer.STATE_IDLE); } private void releaseInternal() { resetInternal(); + setState(ExoPlayer.STATE_IDLE); synchronized (this) { released = true; notifyAll(); @@ -490,6 +491,7 @@ import java.util.List; private void resetInternal() { handler.removeMessages(MSG_DO_SOME_WORK); handler.removeMessages(MSG_INCREMENTAL_PREPARE); + rebuffering = false; mediaClock.stop(); if (renderers == null) { return; @@ -502,7 +504,6 @@ import java.util.List; renderers = null; timeSourceTrackRenderer = null; enabledRenderers.clear(); - setState(ExoPlayer.STATE_IDLE); } private void stopAndDisable(TrackRenderer renderer) {