ExoPlayer随机播放不会重现所有歌曲

问题描述 投票:3回答:1

我正在使用exoplayer库创建音乐播放器。一切正常,除了不按我预期的那样随机播放。

我的问题如下:

想象一下我有5首歌:

歌曲1

歌曲2

歌曲3

歌曲4

歌曲5

而且我是第一个。然后,我单击洗牌按钮并使用exoPlayer.shuffleModeEnabled = true启用洗牌。那么现在的顺序如下:

歌曲4

歌曲2

歌曲5

歌曲1

歌曲3

就像我在歌曲1中一样,此后它将转到歌曲3,然后它将完成而不会再现歌曲4、2和5。我指定的行为是以随机顺序再现所有歌曲。有什么办法可以通过exoplayer实现这一目标?

android exoplayer exoplayer2.x
1个回答
0
投票

您可以实现自己的ShuffleOrder以实现此目的。一种方法是扩展DefaultShuffleOrder类并使用一个成员字段存储起始索引(在您的示例中,它应该是歌曲1)。您应该重写以下方法:

getNextIndex(int index)
getPreviousIndex(int index)
getFirstIndex()
getLastIndex()

这个想法是使其成为一个循环列表。然后,当您要激活混洗时,请执行以下操作:

concatenatingMediaSource.setShuffleOrder(new MyShuffleOrder());
© www.soinside.com 2019 - 2024. All rights reserved.