в обработчике завершения не отражается изменение в очереди.
му я уже несколько дней пытаюсь использовать API MusicKit. Я пытался использовать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
равно нулю (т.е. песня правильно вставлена в начало очереди). Однако еслиafterItem
не ноль, ничего не происходит. Очередь остается такой же, как если бы не было вставки, и в обработчике завершения не было ошибок. Эта проблема возникает независимо от того, находится ли вставленная песня уже в очереди или нет.
Я пытаюсь изменить очередь неправильно?