我正在使用 ConcatenatingMediaSource
无缝播放许多 MediaSource
,这很有趣,但是当玩家开始播放下一个 MediaSource
时,我找不到接收回调的方法。ExoPlayer.EventLister.onTracksChanged(TrackGroupArray, TrackSelected)
在 MediaSource
更改时被调用(我可以在那时听到新轨道),所以它似乎是正确的位置,但是如何检索正在播放的 MediaSource
的索引?
MediaSource[] allSources = // ...
ConcatenatingMediaSource source = new ConcatenatingMediaSource(allSources);
ExoPlayer player = // ..
player.prepare(source);
// ...
@Override
public void onTracksChanged(TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
// Can I retrieve the index of the MediaSource currently being played here?
// If not, where!?
}
最佳答案
显然正确的回调是 onPositionDiscontinuity()
并且获取当前正在播放的 MediaSource
索引的方法是 ExoPlayer.getCurrentWindowIndex()
@Override
public void onPositionDiscontinuity() {
int sourceIndex = player.getCurrentWindowIndex();
}
关于android - ExoPlayer ConcatenatingMediaSource 更改源回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42674757/