в обработчике завершения не отражается изменение в очереди.

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

Я пытаюсь изменить очередь неправильно?

Ответы на вопрос(0)

Ваш ответ на вопрос