mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
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()) {
|
for (MediaSourceResourceHolder resourceHolder : mediaSourceResources.values()) {
|
||||||
resourceHolder.streamPlayer.release();
|
resourceHolder.streamPlayer.release();
|
||||||
resourceHolder.adsLoader.release();
|
resourceHolder.adsLoader.release();
|
||||||
|
resourceHolder.imaServerSideAdInsertionMediaSource.setStreamManager(
|
||||||
|
/* streamManager= */ null);
|
||||||
}
|
}
|
||||||
mediaSourceResources.clear();
|
mediaSourceResources.clear();
|
||||||
|
player = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* package */ void addMediaSourceResources(
|
/* package */ void addMediaSourceResources(
|
||||||
ImaServerSideAdInsertionMediaSource mediaSource,
|
ImaServerSideAdInsertionMediaSource mediaSource,
|
||||||
StreamPlayer streamPlayer,
|
StreamPlayer streamPlayer,
|
||||||
com.google.ads.interactivemedia.v3.api.AdsLoader adsLoader) {
|
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 {
|
private static final class MediaSourceResourceHolder {
|
||||||
|
public final ImaServerSideAdInsertionMediaSource imaServerSideAdInsertionMediaSource;
|
||||||
public final StreamPlayer streamPlayer;
|
public final StreamPlayer streamPlayer;
|
||||||
public final com.google.ads.interactivemedia.v3.api.AdsLoader adsLoader;
|
public final com.google.ads.interactivemedia.v3.api.AdsLoader adsLoader;
|
||||||
|
|
||||||
private MediaSourceResourceHolder(
|
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.streamPlayer = streamPlayer;
|
||||||
this.adsLoader = adsLoader;
|
this.adsLoader = adsLoader;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user