1

I want to play a list of videos in my app. I am using exoplayer for it. I have links of all the videos in an arrayList. But the problem is that the video each video is taking 4-5 seconds to load. My load control settings:

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);

I want my videos to play as soon as I get the video url as they play in apps like tik tok and Likee

a_local_nobody
  • 7,947
  • 5
  • 29
  • 51

0 Answers0