我总是使用 UIImagePickerController。当从 withUIImagePickerController 或 PHPickerViewController 使用的照片库中选择视频时,与 AirDrop 共享的 HDR 视频的 info[.mediaURL] 为零。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
if mediaType == "public.movie" {
var videoURL = URL(fileURLWithPath: "")
if let videoURLValue = info[.mediaURL] {
videoURL = videoURLValue as! URL
} else {
//
}
此外,info[.PHAsset] 也是 nil 并且 info[.referenceURL] 只是嵌入但不能提取 AVAsset。
if info[.referenceURL] != nil {
videoURL = info[.referenceURL] as! URL
let pHAssets = PHAsset.fetchAssets(withALAssetURLs: [videoURL], options: nil)
phAsset = pHAssets.firstObject
// pHAssets.firstObject is nil
我想提取 AVAsset,你能告诉我上面的方法吗?感谢您阅读我的问题。