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();
}
我正在使用 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();
}