我正在开发一个在服务器上传视频的应用程序,如果用户关闭应用程序并稍后再次打开它,我需要重新运行上传过程。
用户点击视频后,会触发此功能
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let mediaType = info[UIImagePickerControllerMediaType] as! NSString
if mediaType == kUTTypeMovie {
let fileUrl = info[UIImagePickerControllerMediaURL] as! NSURL
// ...
}
self.performSegueWithIdentifier("someSegue", sender: self)
}
但我发现fileUrl
指向原始视频的临时引用,即使视频相同也总是不同。
那么我怎样才能获得视频的真实路径,我可以保存到NSUserDefaults,这样当用户再次打开应用程序时,我可以再次访问该视频。
答案 0 :(得分:0)
UIImagePicker将始终压缩视频并向您发送info[UIImagePickerControllerMediaURL]
中给出的临时文件的NSURL - 无论您是否使用该文件,都有责任删除该临时文件。
如果要使用压缩版本,请将其移至文档文件夹,并将路径保存到NSUserDefaults中。
如果您想要原始原始视频,请在info[UIImagePickerControllerReferenceURL]
中获取NSURL。这是原始ALAsset的URL。然后,您需要使用PHImageManager().requestImageDataForAsset
或PHImageManager().requestExportSessionForVideo
来获取要上传的数据。