ConcatenatingMediaSource

ConcatenatingMediaSource

我正在使用 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/

10-10 20:10