groovy
implementation 'com.google.android.exoplayer:exoplayer-core:<version>'
implementation 'com.google.android.exoplayer:exoplayer-ui:<version>'
DefaultRenderersFactory renderersFactory = new DefaultRenderersFactory(context);
DefaultTrackSelector trackSelector = new DefaultTrackSelector();
SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(context, renderersFactory, trackSelector);
DataSpec dataSpec = new DataSpec(Uri.fromFile(new File(filePath)));
FileDataSourceFactory dataSourceFactory = new FileDataSourceFactory();
dataSourceFactory.createDataSource();
DefaultDataSourceFactory defaultDataSourceFactory = new DefaultDataSourceFactory(context, null, dataSourceFactory);
MediaSource mediaSource = new ProgressiveMediaSource.Factory(defaultDataSourceFactory)
.createMediaSource(Uri.parse(filePath));
player.prepare(mediaSource);
player.setPlayWhenReady(true);
player.addListener(new Player.EventListener() {
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
}
@Override
public void onPlayerError(ExoPlaybackException error) {
}
@Override
public void onPositionDiscontinuity(int reason) {
}
});
MediaSource mediaSource = new HlsMediaSource.Factory(defaultDataSourceFactory)
.createMediaSource(Uri.parse(streamUrl));
ConcatenatingMediaSource mediaSource = new ConcatenatingMediaSource();
mediaSource.addMediaSource(mediaSource1);
mediaSource.addMediaSource(mediaSource2);
player.prepare(mediaSource);