我正在将音乐播放器应用到我的应用中,当用户选择播放列表时,他们可以控制随机播放和重复播放模式。
最初,播放列表的各个MPMediaItem
存储在NSArray
中(然后由播放音乐的功能处理)。当用户将随机播放模式切换为ON时,数组将被复制到NSMutableArray
并且对象被洗牌(当前播放的歌曲在索引0处)。我很擅长这一点;当用户关闭随机播放模式时会出现问题。
就像在iPod音乐应用程序中一样,当用户关闭随机播放模式时,将恢复原始播放列表,并将当前正在播放的歌曲的位置保留在原始阵列中。
基本上我希望这种情况发生:
我希望我已经说清楚了。我非常感谢有关如何以最有效的方式实现这一目标的一些指导。
谢谢!
答案 0 :(得分:2)
为NSArray中放入的对象添加一个orderValue,它等于对象索引。因此,您可以根据此值对数组进行随机播放并恢复原始顺序。