diff --git a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.java b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.java index cefc8fd0df..b648ddd779 100644 --- a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.java +++ b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionMediaSource.java @@ -291,7 +291,7 @@ public final class ImaServerSideAdInsertionMediaSource extends CompositeMediaSou } } - /** The state of the {@link AdsLoader}. */ + /** The state of the {@link AdsLoader} that can be used when resuming from the background. */ public static class State implements Bundleable { private final ImmutableMap adPlaybackStates; @@ -387,7 +387,7 @@ public final class ImaServerSideAdInsertionMediaSource extends CompositeMediaSou /** * Releases resources. * - * @return The {@link State} that can be used to resume with. + * @return The {@link State} that can be used when resuming from the background. */ public State release() { for (MediaSourceResourceHolder resourceHolder : mediaSourceResources.values()) { @@ -396,9 +396,11 @@ public final class ImaServerSideAdInsertionMediaSource extends CompositeMediaSou resourceHolder.imaServerSideAdInsertionMediaSource.setStreamManager( /* streamManager= */ null); } + State state = new State(ImmutableMap.copyOf(adPlaybackStateMap)); + adPlaybackStateMap.clear(); mediaSourceResources.clear(); player = null; - return new State(ImmutableMap.copyOf(adPlaybackStateMap)); + return state; } // Internal methods.