nowPlayingItem + 1 并不总是播放下一首歌曲

nowPlayingItem + 1 does not always play the next song

每次按下某个按钮时,我都将以下代码设置为 运行。对于前几首歌曲,nowPlayingInt 滚动 1,然后从 7 跳到 10,然后每次滚动 3,然后从 13 跳到 17,每次开始滚动 4。当 musicPlayer 逐步播放歌曲时,关于 nowPlayingInt 如何或为什么可以变化超过 1 的任何想法?

    let nowPlayingInt = delegate.queryAsCollection!.items.indexOf(delegate.musicPlayer.nowPlayingItem!)
    print("nowPlayingInt number is \(nowPlayingInt)")
    delegate.musicPlayer.nowPlayingItem = delegate.queryAsCollection!.items[nowPlayingInt! + 1]

我知道我可以使用 .skipToNextItem,但这不是我想要做的,如果我想跳过一首以上的歌曲,那也帮不了我。

AppDelegate 包含:

let musicPlayer = MPMusicPlayerController.systemMusicPlayer()    
var queryAsCollection : MPMediaItemCollection?
var collectionForNextUps = MPMediaQuery()

indexofNowPlayingItem 可以正常工作了。仍然不确定为什么带有 indexOf 的行没有成功,但我想我 post 至少可以完整地回答一下。

    let nowPlayingInt = delegate.musicPlayer.indexOfNowPlayingItem
    print("nowPlayingInt number is \(nowPlayingInt)  1  ")
    delegate.musicPlayer.nowPlayingItem = delegate.queryAsCollection!.items[nowPlayingInt + 1]