【问题标题】:UIImagePickerController is very slow to load a video fileUIImagePickerController 加载视频文件很慢
【发布时间】:2021-07-11 02:17:55
【问题描述】:

使用UIImagePickerController从我的 iPhone 照片库加载视频文件真的很慢。加载一个 580mb 的视频文件大约需要 30 秒。

代码很简单:

let imagePicker = UIImagePickerController()
imagePicker.sourceType = .photoLibrary
imagePicker.mediaTypes = [kUTTypeMovie as String]
imagePicker.delegate = self
self.present(imagePicker, animated: true, completion: nil)

在我选择照片库中的视频文件后很长时间后调用的委托回调。

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        
        picker.dismiss(animated: true)

可能是什么原因?

【问题讨论】:

    标签: swift uiimagepickercontroller


    【解决方案1】:

    这是正常的。为了向您提供实际视频,运行时必须从库中导出视频。这可能需要很长时间,因为必须重新渲染整个视频。视频越长,导出时间越长。回调必须在导出完成之前出现;因此延迟。

    您可以通过将videoQuality 设置为较低的质量来加快速度。

    请注意,PHPickerViewController 完全没有延迟,因为它采用了完全不同的方法:它立即使用项目提供者调用委托方法,并且不提供视频,除非您明确要求项目提供者这样做(这可以花一些时间)。见https://developer.apple.com/documentation/photokit/phpickerviewcontroller

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多