以自定义大小阅读图库视频

Read Gallery Video in Custom Size

如何从 Gallery(照片)中获取自定义格式和大小的视频。

例如,我想阅读 360p 的视频。

我使用下面的代码获取视频数据,但苹果说它不能保证以最低质量读取它。

它是一个 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
    }
}

无法保证的原因很简单:360p 中的文件可能不在设备上或云端。因此,Photos 框架将提供最接近您要求的格式。如果您想要 360p,我建议您自己重新编码从照片框架获得的视频。