У меня проблема: 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)
Это происходит с каждым треком, поэтому проблема не в треке.
Пожалуйста, помогите!