AVPlayer начинает проигрывать аудио с URL слишком долго - PullRequest
2 голосов
/ 31 мая 2019

У меня проблема: AVPlayer в моем приложении слишком долго начинает воспроизводить аудио с URL.Это занимает 5-15 секунд.

Более того, это дает неверную (как мне кажется) причину ожидания: "AVPlayerWaitingWithNoItemToPlayReason".Вот мой метод начала игры:

private func setNewPlayerItem(with url: URL) {
    player.automaticallyWaitsToMinimizeStalling = false
    player.replaceCurrentItem(with: .init(url: url))

    player.play()
}

А вот и моя отладка.Посмотрите на время.

2019-05-31 16:40:06 +0000 player timeControlStatus 0 (paused)
2019-05-31 16:40:06 +0000 player status 0 (unknown)
2019-05-31 16:40:06 +0000 player currentItem nil
2019-05-31 16:40:15 +0000 player currentItem Optional(<AVPlayerItem: 0x600003a34fa0, asset = <AVURLAsset: 0x600003889a40, URL = *valid URL*>>)
2019-05-31 16:40:15 +0000 player currentItem status 0 (unknown)
2019-05-31 16:40:15 +0000 player timeControlStatus 2 (playing)
2019-05-31 16:40:22 +0000 player status 1 (readyToPlay)
2019-05-31 16:40:22 +0000 player timeControlStatus 1 (waitingToPlayAtSpecifiedRate)
2019-05-31 16:40:22 +0000 player timeControlStatus 2 (playing)
2019-05-31 16:40:23 +0000 player currentItem status 1 (readyToPlay)

Как видите, .currentItem существует, поэтому причина ожидания "AVPlayerWaitingWithNoItemToPlayReason" неверна.Но почему .timeControlStatus меняется на "waitToPlayAtSpecifiedRate" после "игры" ?

Это решение также не работает для меня:

player.playImmediately(atRate: 1.0)

Это происходит с каждым треком, поэтому проблема не в треке.

Пожалуйста, помогите!

...