iOS AVPlayer не проигрывает все удаленные файлы
Я использую SwiftyDropbox
"s getTemporaryLink()
чтобы воспроизвести видео в AVPlayer
, У меня шесть тестовых файлов, и все они работают как положено, кроме 1.
Тот, который не работает, имеет размер 41 МБ (который я бы не рассматривал как большой видеофайл), остальные - < 22 МБ.
Я прочитал AVFoundation
а также SwiftDropbox
документацию много раз, и я не смог найти ничего о максимальном размере файла, хотя я не ожидал бы максимального размера файла для потокового контента. Я ожидаю, что он будет непрерывно воспроизводить небольшие фрагменты, загруженные в память.
Мои вопросы:
- Существует ли ограничение на размер файла при воспроизведении удаленного URL в
AVPlayer
? - Если нет, есть ли определенный способ мне нужно использовать
AVPlayer
для потоковой передачи этих больших файлов?
Я использую следующий код для запуска AVPlayer
:
self.previewPlayer.replaceCurrentItem(with: AVPlayerItem(url: URL(fileURLWithPath: url)))
self.previewPlayer.play()
Спасибо!
1 ответ
Вы должны соблюдать значение status
свойство, чтобы узнать, почему playerItem не удалось воспроизвести. Вот небольшой фрагмент кода для начала:
Добавить наблюдателя
let url = URL.init(string: "your url string") let item = AVPlayerItem.init(url: url!) item.addObserver(self, forKeyPath: "status", options: .new, context: nil)
Проверьте на ошибку
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { if let item = object as? AVPlayerItem, keyPath == "status" { if item.status == .failed { print(item.error?.localizedDescription ?? "Unknown error") } } }