diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java index a43c405dc7..8a75331465 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java @@ -417,11 +417,11 @@ public class MediaCodecAudioTrackRenderer extends MediaCodecTrackRenderer { @Override protected void onStopped() { - super.onStopped(); if (audioTrack != null) { resetSyncParams(); audioTrack.pause(); } + super.onStopped(); } @Override @@ -563,9 +563,12 @@ public class MediaCodecAudioTrackRenderer extends MediaCodecTrackRenderer { @Override protected void onDisabled() { - super.onDisabled(); - releaseAudioTrack(); audioSessionId = 0; + try { + releaseAudioTrack(); + } finally { + super.onDisabled(); + } } @Override diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java index 4a6dcc8206..565ab41723 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java @@ -269,20 +269,20 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer { @Override protected void onStopped() { - super.onStopped(); joiningDeadlineUs = -1; notifyAndResetDroppedFrameCount(); + super.onStopped(); } @Override public void onDisabled() { - super.onDisabled(); currentWidth = -1; currentHeight = -1; currentPixelWidthHeightRatio = -1; lastReportedWidth = -1; lastReportedHeight = -1; lastReportedPixelWidthHeightRatio = -1; + super.onDisabled(); } @Override diff --git a/library/src/main/java/com/google/android/exoplayer/chunk/ChunkSampleSource.java b/library/src/main/java/com/google/android/exoplayer/chunk/ChunkSampleSource.java index b20e6c3c66..f2f0ce031a 100644 --- a/library/src/main/java/com/google/android/exoplayer/chunk/ChunkSampleSource.java +++ b/library/src/main/java/com/google/android/exoplayer/chunk/ChunkSampleSource.java @@ -238,14 +238,17 @@ public class ChunkSampleSource implements SampleSource, Loader.Callback { Assertions.checkState(track == 0); pendingDiscontinuity = false; state = STATE_PREPARED; - loadControl.unregister(this); - chunkSource.disable(mediaChunks); - if (loader.isLoading()) { - loader.cancelLoading(); - } else { - clearMediaChunks(); - clearCurrentLoadable(); - loadControl.trimAllocator(); + try { + chunkSource.disable(mediaChunks); + } finally { + loadControl.unregister(this); + if (loader.isLoading()) { + loader.cancelLoading(); + } else { + clearMediaChunks(); + clearCurrentLoadable(); + loadControl.trimAllocator(); + } } }