Я загружаю AVAsset
асинхронно с помощью этого метода:
playerAsset.loadValuesAsynchronously(forKeys: ["duration", "playable", "hasProtectedContent"]) {
DispatchQueue.main.async {[weak self] in
guard let strongSelf = self else { return }
let playerItem = AVPlayerItem(asset: playerAsset)
self.player?.replaceCurrentItem(with: playerItem)
}
}
При медленном inte rnet мой ресурс иногда воспроизводит аудио полностью, но останавливается на определенном видеокадре или воспроизводит видео без аудио. При поиске назад к началу видео воспроизводится правильно.
У меня есть наблюдатели КВО для playbackBufferEmpty
и playbackLikelyToKeepUp
, но они не вызваны в этой ситуации.