ExoPlayer ConcatenatingMediaSource 改源回调

ExoPlayer ConcatenatingMediaSource change source callback

我正在使用 ConcatenatingMediaSource 无缝播放许多 MediaSource,这很有趣,但是当玩家开始播放下一个 MediaSource.

ExoPlayer.EventLister.onTracksChanged(TrackGroupArray, TrackSelected)MediaSource 发生变化时被调用(那时我可以听到新曲目),所以它看起来是正确的地方,但我如何检索 [= 的索引12=] 正在播放?

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