使用 UIImagePickerControler 无法完成操作错误

The operation could not be completed error using UIImagePickerControler

我在我的应用程序的一部分中使用了 UIImagePickerController,它允许用户从相机胶卷中选择视频。我遇到的问题是,在运行时从图像选择器视图控制器中选择某些特定视频时,我会看到一个对话框显示 "The operation could not be completed," 并且应用程序冻结。

一旦您从相机胶卷中点击您想要的视频,并且在您点击 "Choose" 按钮之前,错误和冻结就会发生——因此,当错误发生时,didFinishPickingMediaWithInfo()还没有被触发。

触发错误的视频不是损坏的文件,因为我可以直接使用 phone 的相机胶卷应用观看它们。

这是我在我的项目中设置 UIImagePickerViewController 的代码:

videoViewController = UIImagePickerController()
videoViewController.delegate = self
videoViewController.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
videoViewController.mediaTypes = [kUTTypeMovie as String] 
videoViewController.allowsEditing = false
videoViewController.modalPresentationStyle = .CurrentContext 

触发此错误的两个文件确实有一个共同点——它们都是从别人的 phone 发给我的。但如果他们不腐败,那可能是怎么回事?

问题的答案是触发错误的视频文件都是.3gp类型。

事实证明,如果我仍然想使用 UIPickerImageController 让用户选择视频,那么知道这个事实是没有用的。无法控制 UIPickerImageController 中显示哪些视频文件类型,也无法添加到 Apple 的代码中以在用户使用时将 .3gp 视频转换为不同的格式在UIPickerImageController和崩溃发生的时间点击它。