Reorder SimpleExoPlayer constructor calls.

We currently call the old (deprecated) from the new one and not
the other way round.

Also remove a duplicated method.

PiperOrigin-RevId: 309702752
This commit is contained in:
tonihei 2020-05-04 10:10:35 +01:00 committed by Oliver Woodman
parent bb744e5f9b
commit 3100f5938d

View File

@ -388,40 +388,8 @@ public class SimpleExoPlayer extends BasePlayer
private boolean playerReleased; private boolean playerReleased;
private DeviceInfo deviceInfo; private DeviceInfo deviceInfo;
/** @param builder The {@link Builder} to obtain all construction parameters. */ /** @deprecated Use the {@link Builder} and pass it to {@link #SimpleExoPlayer(Builder)}. */
protected SimpleExoPlayer(Builder builder) { @Deprecated
this(
builder.context,
builder.renderersFactory,
builder.trackSelector,
builder.mediaSourceFactory,
builder.loadControl,
builder.bandwidthMeter,
builder.analyticsCollector,
builder.useLazyPreparation,
builder.clock,
builder.looper);
if (builder.throwWhenStuckBuffering) {
player.experimental_throwWhenStuckBuffering();
}
}
/**
* @param context A {@link Context}.
* @param renderersFactory A factory for creating {@link Renderer}s to be used by the instance.
* @param trackSelector The {@link TrackSelector} that will be used by the instance.
* @param loadControl The {@link LoadControl} that will be used by the instance.
* @param bandwidthMeter The {@link BandwidthMeter} that will be used by the instance.
* @param analyticsCollector A factory for creating the {@link AnalyticsCollector} that will
* collect and forward all player events.
* @param useLazyPreparation Whether playlist items are prepared lazily. If false, all manifest
* loads and other initial preparation steps happen immediately. If true, these initial
* preparations are triggered only when the player starts buffering the media.
* @param clock The {@link Clock} that will be used by the instance. Should always be {@link
* Clock#DEFAULT}, unless the player is being used from a test.
* @param applicationLooper The {@link Looper} which must be used for all calls to the player and
* which is used to call listeners on.
*/
protected SimpleExoPlayer( protected SimpleExoPlayer(
Context context, Context context,
RenderersFactory renderersFactory, RenderersFactory renderersFactory,
@ -433,8 +401,22 @@ public class SimpleExoPlayer extends BasePlayer
boolean useLazyPreparation, boolean useLazyPreparation,
Clock clock, Clock clock,
Looper applicationLooper) { Looper applicationLooper) {
this.bandwidthMeter = bandwidthMeter; this(
this.analyticsCollector = analyticsCollector; new Builder(context, renderersFactory)
.setTrackSelector(trackSelector)
.setMediaSourceFactory(mediaSourceFactory)
.setLoadControl(loadControl)
.setBandwidthMeter(bandwidthMeter)
.setAnalyticsCollector(analyticsCollector)
.setUseLazyPreparation(useLazyPreparation)
.setClock(clock)
.setLooper(applicationLooper));
}
/** @param builder The {@link Builder} to obtain all construction parameters. */
protected SimpleExoPlayer(Builder builder) {
bandwidthMeter = builder.bandwidthMeter;
analyticsCollector = builder.analyticsCollector;
componentListener = new ComponentListener(); componentListener = new ComponentListener();
videoListeners = new CopyOnWriteArraySet<>(); videoListeners = new CopyOnWriteArraySet<>();
audioListeners = new CopyOnWriteArraySet<>(); audioListeners = new CopyOnWriteArraySet<>();
@ -443,9 +425,9 @@ public class SimpleExoPlayer extends BasePlayer
deviceListeners = new CopyOnWriteArraySet<>(); deviceListeners = new CopyOnWriteArraySet<>();
videoDebugListeners = new CopyOnWriteArraySet<>(); videoDebugListeners = new CopyOnWriteArraySet<>();
audioDebugListeners = new CopyOnWriteArraySet<>(); audioDebugListeners = new CopyOnWriteArraySet<>();
Handler eventHandler = new Handler(applicationLooper); Handler eventHandler = new Handler(builder.looper);
renderers = renderers =
renderersFactory.createRenderers( builder.renderersFactory.createRenderers(
eventHandler, eventHandler,
componentListener, componentListener,
componentListener, componentListener,
@ -463,14 +445,14 @@ public class SimpleExoPlayer extends BasePlayer
player = player =
new ExoPlayerImpl( new ExoPlayerImpl(
renderers, renderers,
trackSelector, builder.trackSelector,
mediaSourceFactory, builder.mediaSourceFactory,
loadControl, builder.loadControl,
bandwidthMeter, bandwidthMeter,
analyticsCollector, analyticsCollector,
useLazyPreparation, builder.useLazyPreparation,
clock, builder.clock,
applicationLooper); builder.looper);
analyticsCollector.setPlayer(player); analyticsCollector.setPlayer(player);
player.addListener(analyticsCollector); player.addListener(analyticsCollector);
player.addListener(componentListener); player.addListener(componentListener);
@ -481,12 +463,15 @@ public class SimpleExoPlayer extends BasePlayer
addMetadataOutput(analyticsCollector); addMetadataOutput(analyticsCollector);
bandwidthMeter.addEventListener(eventHandler, analyticsCollector); bandwidthMeter.addEventListener(eventHandler, analyticsCollector);
audioBecomingNoisyManager = audioBecomingNoisyManager =
new AudioBecomingNoisyManager(context, eventHandler, componentListener); new AudioBecomingNoisyManager(builder.context, eventHandler, componentListener);
audioFocusManager = new AudioFocusManager(context, eventHandler, componentListener); audioFocusManager = new AudioFocusManager(builder.context, eventHandler, componentListener);
streamVolumeManager = new StreamVolumeManager(context, eventHandler, componentListener); streamVolumeManager = new StreamVolumeManager(builder.context, eventHandler, componentListener);
wakeLockManager = new WakeLockManager(context); wakeLockManager = new WakeLockManager(builder.context);
wifiLockManager = new WifiLockManager(context); wifiLockManager = new WifiLockManager(builder.context);
deviceInfo = createDeviceInfo(streamVolumeManager); deviceInfo = createDeviceInfo(streamVolumeManager);
if (builder.throwWhenStuckBuffering) {
player.experimental_throwWhenStuckBuffering();
}
} }
@Override @Override
@ -1032,11 +1017,6 @@ public class SimpleExoPlayer extends BasePlayer
} }
} }
/** Returns whether skipping silences in the audio stream is enabled. */
public boolean isSkipSilenceEnabled() {
return skipSilenceEnabled;
}
/** /**
* Sets a listener to receive video events, removing all existing listeners. * Sets a listener to receive video events, removing all existing listeners.
* *