【发布时间】:2018-02-05 04:19:44
【问题描述】:
我想知道为什么 contentsOf 对来自 AVURLAsset 的 URL 返回 nil。从带有 Photos 框架的自定义库中选择后,我尝试从 PHAsset 请求资产,如下所示:
PHCachingImageManager().requestAVAsset(forVideo: asset, options: nil) { (avAsset, _, _) in
DispatchQueue.main.async {
guard let asset = avAsset as? AVURLAsset else {
return
}
print(asset.url) // file:///var/mobile/Media/DCIM/101APPLE/IMG_1513.MP4
}
}
上面网址的视频可以用AVPlayer正常显示。但是当我尝试使用以下方式获取与 url 关联的数据时:
do {
let videoData = try Data(contentsOf: mediaURL!)
} catch (let error){
print(error.localizedDescription ?? "") // "The file “IMG_1490.MP4” couldn’t be opened because you don’t have permission to view it."
}
【问题讨论】:
-
使用
do/catch并记录错误。 -
谢谢建议,说我没有权限打开,让我更新问题
-
您能告诉我您使用哪个自定义库来获取 PHAsset,您是否从该库中获取了正确的 PHAsset?
标签: ios swift avurlasset