我正在使用 Exoplayer 2.8.0,我有 simpleList 填充了一系列流音频,使用通知按钮、下一步、预览和停止工作正常,但如果要播放列表中的特定歌曲,它总是从列表中的第一首歌曲开始,我点击列表中的哪首歌并不重要, 总是从第一个开始。
这是我制作播放列表的方式:
// Create the Playlist from Array
mediaSources = new MediaSource[radioList_2.size()];
for (int i = 0; i < radioList_2.size(); i++) {
mediaSources[i] = new ExtractorMediaSource( Uri.parse(radioList_2.get(i)),
dataSourceFactory, extractorsFactory, null, null);
}
concatenatingMediaSource=new ConcatenatingMediaSource(mediaSources);
concatenatingMediaSource.addMediaSource(concatenatingMediaSource);
player.prepare(new ConcatenatingMediaSource(false,mediaSources));
sTartNotification();
这是我单击列表中的项目时使用的代码:
MediaSource mediaSource = new ExtractorMediaSource(Uri.parse(strUrl),
dataSourceFactory,
extractorsFactory,
mainHandler,
null);
// player.prepare(mediaSource);
//playerNotificationManager.setPlayer(null);
concatenatingMediaSource.addMediaSource(mediaSource);
player.prepare(new ConcatenatingMediaSource(true,mediaSource));
sTartNotification();
player.setPlayWhenReady(true);
//concatenatingMediaSource=new ConcatenatingMediaSource(mediaSource);
// concatenatingMediaSource.addMediaSource(0,mediaSource);
我也尝试了评论行,它开始播放,但随后导航按钮停止工作,就像播放列表不再退出一样。
我已经读过这个:如何从ExoPlayer播放列表安卓播放特定视频? 但是搜索功能对我不起作用。
谢谢 帮助将不胜感激
尝试使用单个媒体源并传递要播放的音频/视频的URL。如果你想寻求,也传递事件时间。
public void preparePlayer(String url, long lastEventTime) {
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context, Util.getUserAgent(context, "XYZ"));
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory();
MediaSource mediaSource;
if (url.endsWith(".m3u8")) {
mediaSource = new HlsMediaSource(Uri.parse(url), dataSourceFactory, null, null);
} else {
mediaSource = new ExtractorMediaSource(Uri.parse(url), dataSourceFactory, extractorsFactory, null, null);
}
// Prepare the player with the source.
simpleExolayer.prepare(mediaSource);
if (lastEventTime > 0) {
simpleExolayer.seekTo(lastEventTime * 1000);
}
}