Commit 9b491865 by ibaker Committed by kim-vde

Move AnalyticsCollector setup from SimpleExoPlayer to ExoPlayerImpl

PiperOrigin-RevId: 320172040
parent 01249bf1
...@@ -75,6 +75,8 @@ import java.util.concurrent.TimeoutException; ...@@ -75,6 +75,8 @@ import java.util.concurrent.TimeoutException;
private final List<MediaSourceHolderSnapshot> mediaSourceHolderSnapshots; private final List<MediaSourceHolderSnapshot> mediaSourceHolderSnapshots;
private final boolean useLazyPreparation; private final boolean useLazyPreparation;
private final MediaSourceFactory mediaSourceFactory; private final MediaSourceFactory mediaSourceFactory;
@Nullable private final AnalyticsCollector analyticsCollector;
private final BandwidthMeter bandwidthMeter;
@RepeatMode private int repeatMode; @RepeatMode private int repeatMode;
private boolean shuffleModeEnabled; private boolean shuffleModeEnabled;
...@@ -135,6 +137,8 @@ import java.util.concurrent.TimeoutException; ...@@ -135,6 +137,8 @@ import java.util.concurrent.TimeoutException;
this.renderers = checkNotNull(renderers); this.renderers = checkNotNull(renderers);
this.trackSelector = checkNotNull(trackSelector); this.trackSelector = checkNotNull(trackSelector);
this.mediaSourceFactory = mediaSourceFactory; this.mediaSourceFactory = mediaSourceFactory;
this.bandwidthMeter = bandwidthMeter;
this.analyticsCollector = analyticsCollector;
this.useLazyPreparation = useLazyPreparation; this.useLazyPreparation = useLazyPreparation;
this.seekParameters = seekParameters; this.seekParameters = seekParameters;
this.pauseAtEndOfMediaItems = pauseAtEndOfMediaItems; this.pauseAtEndOfMediaItems = pauseAtEndOfMediaItems;
...@@ -161,6 +165,8 @@ import java.util.concurrent.TimeoutException; ...@@ -161,6 +165,8 @@ import java.util.concurrent.TimeoutException;
pendingListenerNotifications = new ArrayDeque<>(); pendingListenerNotifications = new ArrayDeque<>();
if (analyticsCollector != null) { if (analyticsCollector != null) {
analyticsCollector.setPlayer(this); analyticsCollector.setPlayer(this);
addListener(analyticsCollector);
bandwidthMeter.addEventListener(applicationHandler, analyticsCollector);
} }
internalPlayer = internalPlayer =
new ExoPlayerImplInternal( new ExoPlayerImplInternal(
...@@ -712,6 +718,9 @@ import java.util.concurrent.TimeoutException; ...@@ -712,6 +718,9 @@ import java.util.concurrent.TimeoutException;
new RuntimeException(new TimeoutException("Player release timed out."))))); new RuntimeException(new TimeoutException("Player release timed out.")))));
} }
applicationHandler.removeCallbacksAndMessages(null); applicationHandler.removeCallbacksAndMessages(null);
if (analyticsCollector != null) {
bandwidthMeter.removeEventListener(analyticsCollector);
}
playbackInfo = playbackInfo =
getResetPlaybackInfo( getResetPlaybackInfo(
/* clearPlaylist= */ false, /* clearPlaylist= */ false,
......
...@@ -601,15 +601,12 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -601,15 +601,12 @@ public class SimpleExoPlayer extends BasePlayer
builder.pauseAtEndOfMediaItems, builder.pauseAtEndOfMediaItems,
builder.clock, builder.clock,
builder.looper); builder.looper);
analyticsCollector.setPlayer(player);
player.addListener(analyticsCollector);
player.addListener(componentListener); player.addListener(componentListener);
videoDebugListeners.add(analyticsCollector); videoDebugListeners.add(analyticsCollector);
videoListeners.add(analyticsCollector); videoListeners.add(analyticsCollector);
audioDebugListeners.add(analyticsCollector); audioDebugListeners.add(analyticsCollector);
audioListeners.add(analyticsCollector); audioListeners.add(analyticsCollector);
addMetadataOutput(analyticsCollector); addMetadataOutput(analyticsCollector);
bandwidthMeter.addEventListener(eventHandler, analyticsCollector);
audioBecomingNoisyManager = audioBecomingNoisyManager =
new AudioBecomingNoisyManager(builder.context, eventHandler, componentListener); new AudioBecomingNoisyManager(builder.context, eventHandler, componentListener);
...@@ -1699,7 +1696,6 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -1699,7 +1696,6 @@ public class SimpleExoPlayer extends BasePlayer
Assertions.checkNotNull(priorityTaskManager).remove(C.PRIORITY_PLAYBACK); Assertions.checkNotNull(priorityTaskManager).remove(C.PRIORITY_PLAYBACK);
isPriorityTaskManagerRegistered = false; isPriorityTaskManagerRegistered = false;
} }
bandwidthMeter.removeEventListener(analyticsCollector);
currentCues = Collections.emptyList(); currentCues = Collections.emptyList();
playerReleased = true; playerReleased = true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment