mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Ensure constructor condition is unblocked even for unchecked exceptions
The condition is meant to be unblocked whenever the constructor is left. This should include unchecked exceptions (that may be thrown due to bugs in the dependent components, or user-inhected factories) PiperOrigin-RevId: 366235361
This commit is contained in:
parent
c80e7b0a68
commit
a317746eff
1 changed files with 86 additions and 83 deletions
|
|
@ -638,6 +638,7 @@ public class SimpleExoPlayer extends BasePlayer
|
||||||
/** @param builder The {@link Builder} to obtain all construction parameters. */
|
/** @param builder The {@link Builder} to obtain all construction parameters. */
|
||||||
protected SimpleExoPlayer(Builder builder) {
|
protected SimpleExoPlayer(Builder builder) {
|
||||||
constructorFinished = new ConditionVariable();
|
constructorFinished = new ConditionVariable();
|
||||||
|
try {
|
||||||
applicationContext = builder.context.getApplicationContext();
|
applicationContext = builder.context.getApplicationContext();
|
||||||
analyticsCollector = builder.analyticsCollector;
|
analyticsCollector = builder.analyticsCollector;
|
||||||
priorityTaskManager = builder.priorityTaskManager;
|
priorityTaskManager = builder.priorityTaskManager;
|
||||||
|
|
@ -707,7 +708,8 @@ public class SimpleExoPlayer extends BasePlayer
|
||||||
audioBecomingNoisyManager.setEnabled(builder.handleAudioBecomingNoisy);
|
audioBecomingNoisyManager.setEnabled(builder.handleAudioBecomingNoisy);
|
||||||
audioFocusManager = new AudioFocusManager(builder.context, eventHandler, componentListener);
|
audioFocusManager = new AudioFocusManager(builder.context, eventHandler, componentListener);
|
||||||
audioFocusManager.setAudioAttributes(builder.handleAudioFocus ? audioAttributes : null);
|
audioFocusManager.setAudioAttributes(builder.handleAudioFocus ? audioAttributes : null);
|
||||||
streamVolumeManager = new StreamVolumeManager(builder.context, eventHandler, componentListener);
|
streamVolumeManager =
|
||||||
|
new StreamVolumeManager(builder.context, eventHandler, componentListener);
|
||||||
streamVolumeManager.setStreamType(Util.getStreamTypeForAudioUsage(audioAttributes.usage));
|
streamVolumeManager.setStreamType(Util.getStreamTypeForAudioUsage(audioAttributes.usage));
|
||||||
wakeLockManager = new WakeLockManager(builder.context);
|
wakeLockManager = new WakeLockManager(builder.context);
|
||||||
wakeLockManager.setEnabled(builder.wakeMode != C.WAKE_MODE_NONE);
|
wakeLockManager.setEnabled(builder.wakeMode != C.WAKE_MODE_NONE);
|
||||||
|
|
@ -721,9 +723,10 @@ public class SimpleExoPlayer extends BasePlayer
|
||||||
sendRendererMessage(C.TRACK_TYPE_VIDEO, Renderer.MSG_SET_SCALING_MODE, videoScalingMode);
|
sendRendererMessage(C.TRACK_TYPE_VIDEO, Renderer.MSG_SET_SCALING_MODE, videoScalingMode);
|
||||||
sendRendererMessage(
|
sendRendererMessage(
|
||||||
C.TRACK_TYPE_AUDIO, Renderer.MSG_SET_SKIP_SILENCE_ENABLED, skipSilenceEnabled);
|
C.TRACK_TYPE_AUDIO, Renderer.MSG_SET_SKIP_SILENCE_ENABLED, skipSilenceEnabled);
|
||||||
|
} finally {
|
||||||
constructorFinished.open();
|
constructorFinished.open();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled) {
|
public void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue