diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java index 2bcaad4fce..7332ed74e0 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java @@ -35,8 +35,7 @@ import java.io.IOException; /** @deprecated Use {@link ProgressiveMediaSource} instead. */ @Deprecated @SuppressWarnings("deprecation") -public final class ExtractorMediaSource extends BaseMediaSource - implements MediaSource.SourceInfoRefreshListener { +public final class ExtractorMediaSource extends CompositeMediaSource { /** @deprecated Use {@link MediaSourceEventListener} instead. */ @Deprecated @@ -340,12 +339,14 @@ public final class ExtractorMediaSource extends BaseMediaSource @Override protected void prepareSourceInternal(@Nullable TransferListener mediaTransferListener) { - progressiveMediaSource.prepareSource(/* listener= */ this, mediaTransferListener); + super.prepareSourceInternal(mediaTransferListener); + prepareChildSource(/* id= */ null, progressiveMediaSource); } @Override - public void maybeThrowSourceInfoRefreshError() throws IOException { - progressiveMediaSource.maybeThrowSourceInfoRefreshError(); + protected void onChildSourceInfoRefreshed( + @Nullable Void id, MediaSource mediaSource, Timeline timeline) { + refreshSourceInfo(timeline); } @Override @@ -358,16 +359,6 @@ public final class ExtractorMediaSource extends BaseMediaSource progressiveMediaSource.releasePeriod(mediaPeriod); } - @Override - protected void releaseSourceInternal() { - progressiveMediaSource.releaseSource(/* listener= */ this); - } - - @Override - public void onSourceInfoRefreshed(MediaSource source, Timeline timeline) { - refreshSourceInfo(timeline); - } - @Deprecated private static final class EventListenerWrapper extends DefaultMediaSourceEventListener {