Чтение галереи видео в нестандартном размере - PullRequest
0 голосов
/ 18 мая 2019

Как я могу получить видео от Gallery (фотографии) в произвольном формате и размере.

например, я хочу прочитать видео в формате 360p.

Я использовал код ниже, чтобыполучить видеоданные, но Apple заявила, что не гарантирует их чтение в низком качестве.

Это расширение PHAsset, поэтому self ссылается на PHAsset объект.

var fileData: Data? = nil
let manager = PHImageManager.default()
let options = PHVideoRequestOptions()
options.isNetworkAccessAllowed = true
options.deliveryMode = .fastFormat

manager.requestAVAsset(forVideo: self, options: options) {
    (asset: AVAsset?, audioMix: AVAudioMix?, _) in
    if let avassetURL = asset as? AVURLAsset {
        guard let video = try? Data(contentsOf: avassetURL.url) else {
            print("reading video failed")
            return
        }
        fileData = video
    }
}

1 Ответ

1 голос
/ 19 мая 2019

Существует простая причина, по которой это не может быть гарантировано: файл в формате 360p может отсутствовать на устройстве или в облаке. Таким образом, фреймворк Photos доставит формат, ближайший к тому, что вы запрашиваете. Если вы хотите ровно 360p, я бы порекомендовал вам перекодировать видео, полученное из рамки для фотографий, самостоятельно.

...