Exoplayer2 参数设置指南:告别 buildUponParameters 函数
Exoplayer2 中没有 'buildUponParameters' 函数,这是因为该函数是在 Exoplayer1 中引入的,而 Exoplayer2 采用了不同的参数设置方式。在 Exoplayer2 中,参数设置通过创建一个新的 'DefaultRenderersFactory' 对象并传递参数来实现。
例如,以下代码演示了如何设置 Exoplayer2 的缓存大小和渲染器模式:
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(context);
renderersFactory.setAllowedVideoJoiningTimeMs(VideoPlayerConfig.DEFAULT_ALLOWED_VIDEO_JOINING_TIME_MS);
renderersFactory.setEnableAudioFloatOutput(VideoPlayerConfig.DEFAULT_ENABLE_AUDIO_FLOAT_OUTPUT);
renderersFactory.setEnableDecoderFallback(VideoPlayerConfig.DEFAULT_ENABLE_DECODER_FALLBACK);
renderersFactory.setMediaCodecSelector(new DefaultMediaCodecSelector());
renderersFactory.setMediaDrmCallback(new WidevineMediaDrmCallback());
renderersFactory.setTunnelingAudioSessionId(C.generateAudioSessionIdV21(context));
renderersFactory.setTunnelingEnabled(VideoPlayerConfig.DEFAULT_TUNNELING);
renderersFactory.setTunnelingVideoPlayerChoice(VideoPlayerConfig.DEFAULT_TUNNELING_VIDEO_PLAYER_CHOICE);
SimpleExoPlayer player = new SimpleExoPlayer.Builder(context, renderersFactory)
.setLoadControl(new DefaultLoadControl.Builder()
.setBufferDurationsMs(VideoPlayerConfig.DEFAULT_MIN_BUFFER_MS,
VideoPlayerConfig.DEFAULT_MAX_BUFFER_MS,
VideoPlayerConfig.DEFAULT_BUFFER_FOR_PLAYBACK_MS,
VideoPlayerConfig.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS)
.setBackBuffer(VideoPlayerConfig.DEFAULT_BACK_BUFFER_DURATION_MS, true)
.setPrioritizeTimeOverSizeThresholds(VideoPlayerConfig.DEFAULT_PRIORITIZE_TIME_OVER_SIZE_THRESHOLDS)
.createDefaultLoadControl())
.build();
此代码创建了一个新的 'DefaultRenderersFactory' 对象,并设置了不同的参数。然后,使用这个新的 'DefaultRenderersFactory' 对象创建一个 'SimpleExoPlayer' 对象,并设置了一个新的 'DefaultLoadControl' 对象,该对象包含了缓存的大小和渲染器模式等参数。
原文地址: https://www.cveoy.top/t/topic/jFtP 著作权归作者所有。请勿转载和采集!