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