我将以下代码设置为每次按下某个按钮时运行。现在,对于前几首歌曲,PlayingInt滚动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的行没有解决问题,但我认为我至少会完整地发布答案。

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

08-16 01:43