我正在开发一个将视频上传到服务器上的应用程序,如果用户关闭应用程序并稍后再次打开它,我需要重新运行上传过程。
用户点击视频后,该函数被触发
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,这样当用户再次打开应用程序时,我就可以再次访问该视频。
发布于 2016-01-23 22:58:03
UIImagePicker将始终压缩视频,并向您提供info[UIImagePickerControllerMediaURL]中给定的临时文件的NSURL --您有责任删除该临时文件,无论您是否使用它。
如果要使用压缩版本,请将其移动到documents文件夹,并将路径保存到NSUserDefaults中。
如果您想要原始的原始视频,请在info[UIImagePickerControllerReferenceURL]中获取NSURL。这是指向原始ALAsset的URL。然后,您将需要使用PHImageManager().requestImageDataForAsset或PHImageManager().requestExportSessionForVideo来获取要上传的数据。
https://stackoverflow.com/questions/34964329
复制相似问题