AVPlayer «замораживает» приложение в начале буферизации аудиопотока

Я использую подклассAVQueuePlayer и когда я добавляю новыйAVPlayerItem с потоковым URL приложение останавливается на секунду или две. Под заморозкой я подразумеваю, что он не реагирует на прикосновения к пользовательскому интерфейсу. Кроме того, если у меня уже есть песня, а затем добавить еще одну в очередь,AVQueuePlayer автоматически начинает предварительную загрузку песни, пока она все еще транслирует первую. Это позволяет приложению не реагировать на прикосновения к пользовательскому интерфейсу в течение двух секунд, как при добавлении первой песни, но песня все еще воспроизводится. Так что значитAVQueuePlayer делает что-то в основном потоке, что вызывает явное «замораживание».

Я используюinsertItem:afterItem: добавить мойAVPlayerItem, Я проверил и убедился, что это был метод, который вызывал задержку. Может быть, это может быть что-тоAVPlayerItem делает, когда он активируетсяAVQueuePlayer в момент добавления его в очередь.

Необходимо отметить, что я использую бета-версию Dropbox API v1 для получения потокового URL-адреса с помощью вызова этого метода:

[[self restClient] loadStreamableURLForFile:metadata.path];

Затем, когда я получаю URL потока, я отправляю егоAVQueuePlayer следующее:

[self.player insertItem:[AVPlayerItem playerItemWithURL:url] afterItem:nil];

Итак, мой вопрос: как мне этого избежать? Должен ли я выполнить предварительную загрузку аудиопотока самостоятельно без помощиAVPlayer? Если да, то как мне это сделать?

Благодарю.

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

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