以自定义大小阅读图库视频
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,我建议您自己重新编码从照片框架获得的视频。
如何从 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,我建议您自己重新编码从照片框架获得的视频。