我想在我的应用中播放视频列表。我正在使用 exoplayer。我有一个arrayList 中所有视频的链接。但问题是每个视频的视频加载时间为 4-5 秒。 我的负载控制设置:
public static final int MIN_BUFFER_DURATION = 2000;
//Max Video you want to buffer during PlayBack
public static final int MAX_BUFFER_DURATION = 5000;
//Min Video you want to buffer before start Playing it
public static final int MIN_PLAYBACK_START_BUFFER = 1500;
//Min video You want to buffer when user resumes video
public static final int MIN_PLAYBACK_RESUME_BUFFER = 2000;
loadControl = new DefaultLoadControl.Builder()
.setAllocator(new DefaultAllocator(true, 30))
.setBufferDurationsMs(MIN_BUFFER_DURATION,
MAX_BUFFER_DURATION,
MIN_PLAYBACK_START_BUFFER,
MIN_PLAYBACK_RESUME_BUFFER)
.setTargetBufferBytes(-1)
.setPrioritizeTimeOverSizeThresholds(true).createDefaultLoadControl();
MediaSource mediaSource = new ExtractorMediaSource(Uri.parse(videoURL),
new CacheDataSourceFactory(getContext(), 100 * 1024 * 1024, 5 * 1024 * 1024), new DefaultExtractorsFactory(), null, null);
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory videoTrackSelectionFactory =
new AdaptiveTrackSelection.Factory(bandwidthMeter);
TrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
@DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode = DefaultRenderersFactory.EXTENSION_RENDERER_MODE_PREFER;
renderersFactory = new DefaultRenderersFactory(getContext()).setExtensionRendererMode(extensionRendererMode);
player = new SimpleExoPlayer.Builder(getContext())
.setTrackSelector(trackSelector)
.setLoadControl(loadControl)
.build();
PlaybackParameters param = new PlaybackParameters(1, 1);
//param.setSpeed(0.88f);// 1f is 1x, 2f is 2x
player.setPlaybackParameters(param);
player.prepare(mediaSource);
player.setPlayWhenReady(true);
我希望我的视频在获得视频网址后立即播放,因为它们在 tik tok 和 Likee 等应用中播放