iOS Swift 2 - 在相机胶卷中获取视频路径

时间:2016-01-23 13:56:08

标签: ios swift

我正在开发一个在服务器上传视频的应用程序,如果用户关闭应用程序并稍后再次打开它,我需要重新运行上传过程。

用户点击视频后,会触发此功能

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,这样当用户再次打开应用程序时,我可以再次访问该视频。

1 个答案:

答案 0 :(得分:0)

UIImagePicker将始终压缩视频并向您发送info[UIImagePickerControllerMediaURL]中给出的临时文件的NSURL - 无论您是否使用该文件,都有责任删除该临时文件。

如果要使用压缩版本,请将其移至文档文件夹,并将路径保存到NSUserDefaults中。

如果您想要原始原始视频,请在info[UIImagePickerControllerReferenceURL]中获取NSURL。这是原始ALAsset的URL。然后,您需要使用PHImageManager().requestImageDataForAssetPHImageManager().requestExportSessionForVideo来获取要上传的数据。