我想知道为什么 contentOf 对来自 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."
}