gpt4 book ai didi

ios - MPMusicPlayerControllerMutableQueue 插入 Apple Music 歌曲不起作用

转载 作者:行者123 更新时间:2023-12-05 07:33:25 27 4
gpt4 key购买 nike

所以这几天我一直在尝试使用 MusicKit API。我一直在尝试使用 MPMusicPlayerApplicationControllerMutableQueue蜜蜂。

我已经使用 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,则什么也不会发生。队列保持完全相同,就好像没有插入发生一样,并且完成处理程序中没有提供错误。无论插入的歌曲是否已在队列中,都会出现此问题。

我是否试图错误地修改队列?

最佳答案

好的,我找到了解决方案。

如果你想改变队列。

你需要返回查询

let musicPlayerController = MPMusicPlayerController.applicationQueuePlayer

musicPlayerController.perform(queueTransaction: { queue in

let afterItem = queue.items.first(where: { $0.playbackStoreID == predecessorId })
let descriptor = MPMusicPlayerStoreQueueDescriptor(storeIDs: [newItemId])

//return the modification here.
return queue.insert(descriptor, after: afterItem)

}) { (queue, error) in

// Completion for when items' position update
if error != nil {
print(error!)
}
}

关于ios - MPMusicPlayerControllerMutableQueue 插入 Apple Music 歌曲不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50592820/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com