void loadVideo(PlayerSurfaceHolder playerSurfaceHolder,
DrmSessionCreator drmSessionCreator,
Uri uri,
Options options,
ExoPlayerForwarder forwarder,
MediaCodecSelector mediaCodecSelector) {
this.options = options;
DefaultBandwidthMeter bandwidthMeter = bandwidthMeterCreator.create(options.maxInitialBitrate());
compositeTrackSelector = trackSelectorCreator.create(options, bandwidthMeter);
exoPlayer = exoPlayerCreator.create(
drmSessionCreator,
forwarder.drmSessionEventListener(),
mediaCodecSelector,
compositeTrackSelector.trackSelector()
);
rendererTypeRequester = rendererTypeRequesterCreator.createfrom(exoPlayer);
exoPlayer.addListener(forwarder.exoPlayerEventListener());
exoPlayer.addAnalyticsListener(forwarder.analyticsListener());
exoPlayer.addVideoListener(forwarder.videoListener());
setMovieAudioAttributes(exoPlayer);
MediaSource mediaSource = mediaSourceFactory.create(
options,
uri,
forwarder.mediaSourceEventListener(),
bandwidthMeter
);
attachToSurface(playerSurfaceHolder);
exoPlayer.prepare(mediaSource, RESET_POSITION, DO_NOT_RESET_STATE);
}