我在我的应用程序的一部分中使用UIImagePickerController,允许用户从相机胶卷中选择一个视频。我遇到的问题是,在运行时从图像选择器视图控制器中选择某些特定视频时,我会看到一个对话框,说“操作无法完成”,并且应用程序冻结。
一旦您点击相机胶卷上所需的视频,然后点击“选择”按钮,就会发生错误和冻结 - 因此,当错误发生时,didFinishPickingMediaWithInfo()
尚未发生触发。
触发错误的视频不是损坏的文件,因为我可以直接使用手机的相机胶卷应用程序观看它们。
以下是我在项目中设置UIImagePickerViewController的代码:
videoViewController = UIImagePickerController()
videoViewController.delegate = self
videoViewController.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
videoViewController.mediaTypes = [kUTTypeMovie as String]
videoViewController.allowsEditing = false
videoViewController.modalPresentationStyle = .CurrentContext
触发此错误的两个文件确实有一个共同点 - 它们都是从别人的手机发给我的。但如果他们没有腐败,可能会发生什么?
答案 0 :(得分:7)
问题的答案是触发错误的视频文件都是.3gp
类型。
事实证明,如果我仍想使用UIPickerImageController
让用户选择视频,那么对这一事实的了解就毫无用处。无法控制在UIPickerImageController
中显示哪些视频文件类型,也没有任何方法可以添加到Apple的代码,以便在用户之间的时间内将.3gp
视频转换为其他格式在UIPickerImageController
中点击它以及崩溃发生的时间。