在 Exo
Pl
ayer 中,当用户播放完一个视频并开始播放下一个视频时,可能会出现短暂的黑屏。这是因为 Exo
Pl
ayer 默认情况下会在视频切换时进行缓冲,而缓冲可能需要一定的时间。为解决这个问题,可以通过设置 Exo
Pl
ayer 的预加载值以进行缓冲并提前加载下一个视频。以下是一个示例代码,用于设置预加载值:
DefaultLoadControl.Builder builder = new DefaultLoadControl.Builder();
builder.setBufferDurationsMs(5 * 60 * 1000, 10 * 60 * 1000, 1500, 3000);
SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(context, new DefaultRenderersFactory(context), builder.createDefaultLoadControl(), new DefaultTrackSelector(), new DefaultMediaSourceFactory(dataSourceFactory));
在这个示例中,设置了预加载的缓冲时间为 5 分钟和 10 分钟,并且设置了最小和最大缓冲大小。将这些设置传递给 ExoPlayer 的 builder 中,就可以通过预先加载来避免黑屏问题。