Reset stream manager in AdsLoader.release()
This prevents a stack trace that is shown in the logs when the stream manager is released after the activity was stopped. In this case the call to `streamManager.destroy()` coming from `releaseSourceInternal()` of the media source is too late and produces an error saying `Application attempted to call on a destroyed WebView`. The error has no effect but it's nice to not have this stack trace in the logs. PiperOrigin-RevId: 428574231
This commit is contained in:
parent
741ab34a63
commit
1a31faaeee
@ -295,23 +295,31 @@ public final class ImaServerSideAdInsertionMediaSource extends CompositeMediaSou
|
||||
for (MediaSourceResourceHolder resourceHolder : mediaSourceResources.values()) {
|
||||
resourceHolder.streamPlayer.release();
|
||||
resourceHolder.adsLoader.release();
|
||||
resourceHolder.imaServerSideAdInsertionMediaSource.setStreamManager(
|
||||
/* streamManager= */ null);
|
||||
}
|
||||
mediaSourceResources.clear();
|
||||
player = null;
|
||||
}
|
||||
|
||||
/* package */ void addMediaSourceResources(
|
||||
ImaServerSideAdInsertionMediaSource mediaSource,
|
||||
StreamPlayer streamPlayer,
|
||||
com.google.ads.interactivemedia.v3.api.AdsLoader adsLoader) {
|
||||
mediaSourceResources.put(mediaSource, new MediaSourceResourceHolder(streamPlayer, adsLoader));
|
||||
mediaSourceResources.put(
|
||||
mediaSource, new MediaSourceResourceHolder(mediaSource, streamPlayer, adsLoader));
|
||||
}
|
||||
|
||||
private static final class MediaSourceResourceHolder {
|
||||
public final ImaServerSideAdInsertionMediaSource imaServerSideAdInsertionMediaSource;
|
||||
public final StreamPlayer streamPlayer;
|
||||
public final com.google.ads.interactivemedia.v3.api.AdsLoader adsLoader;
|
||||
|
||||
private MediaSourceResourceHolder(
|
||||
StreamPlayer streamPlayer, com.google.ads.interactivemedia.v3.api.AdsLoader adsLoader) {
|
||||
ImaServerSideAdInsertionMediaSource imaServerSideAdInsertionMediaSource,
|
||||
StreamPlayer streamPlayer,
|
||||
com.google.ads.interactivemedia.v3.api.AdsLoader adsLoader) {
|
||||
this.imaServerSideAdInsertionMediaSource = imaServerSideAdInsertionMediaSource;
|
||||
this.streamPlayer = streamPlayer;
|
||||
this.adsLoader = adsLoader;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user