PHPickerViewController 添加视频编辑屏幕又名 (UIImagePickerController.allowsEditing = true)

PHPickerViewController add video editing screen aka (UIImagePickerController.allowsEditing = true)

我想要 edit/compress 选择后的视频,就像在 UIImagePickerControllerallowsEditing = true 中一样。

新的 PHPickerViewController 仍然没有这个 属性 并且 Apple 说没有这样的 属性 here。但是 App Store 中有一些应用程序在从 PHPickerViewController

中选择资产后推送“allowsEditing controller”

这是我的 PHPickerViewController 实现:

func openImagePicker() {
        if #available(iOS 14, *) {
            var configuration = PHPickerConfiguration()
            configuration.preferredAssetRepresentationMode = .automatic
            let picker = PHPickerViewController(configuration: configuration)

            // Set the delegate
            picker.delegate = self
            // Present the picker

            present(picker, animated: true)
        } else {
            // Fallback on earlier versions
            imagePicker?.photoGalleryAsscessRequest()
        }
    }

extension EditController: PHPickerViewControllerDelegate {
    @available(iOS 14, *)
    func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
        self.dismiss(animated: true)
   }
}

我调查了这个问题,但确实不支持像你提到的那样 allowsediting

例如,与您的问题相关的视频编辑预设值已折旧为 UIImagePickerController.ImageURLExportPreset.compatible,但不支持自动压缩。选择器将始终传递原始 video/image 并且由应用程序进行必要的压缩或编辑。 您可以查看此 Apple 文档:imageExportPreset.

Apple 特别提到我们应该使用这个新的而不是旧的 UIImagePickerViewController。如果有人想知道更多:Meet the new Photos picker