所以我这几天一直在尝试使用 MusicKit API。我一直在尝试使用MPMusicPlayerApplicationController和MutableQueue API。
我已经使用setQueue(with: [String])
Apple Music 歌曲的商店标识符数组初始化了队列。然后我想允许用户重新排序队列中的歌曲。我使用下面的代码来尝试。
let musicPlayerController = MPMusicPlayerController.applicationQueuePlayer
musicPlayerController.perform(queueTransaction: { queue in
let afterItem = queue.items.first(where: { $0.playbackStoreID == predecessorId })
let descriptor = MPMusicPlayerStoreQueueDescriptor(storeIDs: [newItemId])
queue.insert(descriptor, after: afterItem)
}) { (queue, error) in
// Completion for when items' position update
if error != nil {
print(error!)
}
}
如果afterItem
为 nil(即歌曲正确插入到队列的前面),上面的代码将按预期工作。但是,如果afterItem
不是 nil,则什么也不会发生。队列保持完全相同,就好像没有发生插入并且完成处理程序中没有提供错误一样。无论插入的歌曲是否已经在队列中,都会发生此问题。
我是否尝试错误地修改队列?