我在Exo Player中有一个用例来完成视频播放或播放器播放的任务。 我在视频完成时使用onTrackChange()播放器内部方法,但它对我没有帮助
你可以添加一个Player.EventListener来收听状态Player.STATE_ENDED:
player.addListener(new Player.DefaultEventListener() {
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
if (playbackState == Player.STATE_ENDED) {
// end of MediaSource
}
}
@Override
public void onPositionDiscontinuity(int reason) {
if (reason == Player.DISCONTINUITY_REASON_PERIOD_TRANSITION) {
// when window index changes (eg. end of window 0, start of window 1)
}
}
});
如果您正在使用播放列表并且想要在下一个播放列表项目开始时知道(Medium blog about playlists with ExoPlayer),您只需要听取位置不连续性。