Применить разрешить редактирование только к видео в imagePickerController
Я использую UIImagePickerController, чтобы выбрать изображение или видео. То, что я сейчас пытаюсь достичь, это установить allowsEditing = true
но применять только при выборе видео. В тот момент, когда установлено allowEditing = true
это также применяется, когда вы выбираете изображение.
Единственная удача, которую я имел до сих пор, это установка allowsEditing = false
и используя didFinishPickingMediaWithInfo
метод определения, когда видео было выбрано. Оттуда применяется UIVideoEditorController для выбранного видео. Проблема с этим, однако, заключается в том, что видео обнаруживается, только когда вы выбираете "выбрать", когда оно открывается для просмотра видео редактирования (изображение 1 ниже). И, очевидно, когда я выбираю "Выбрать", он открывает другой вид редактирования видео, который является UIVideoEditorController (изображение 2). Если бы я мог определить, когда видео выбрано сразу, а не открываться в режиме редактирования видео, все будет работать идеально. Если я подам заявку allowsEditing = true
, при выборе видео оно открывается до изображения 2 ниже, что идеально, однако при выборе видео оно открывается до просмотра обрезанного изображения, которое не является тем, что я хочу, поэтому я застрял:(
Ниже приведен код, который я использую. Если у кого-то есть какие-либо предложения или может помочь, это будет с благодарностью. заранее спасибо
@IBAction func galleryButton(_ sender: Any) {
picker = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = false
picker.videoMaximumDuration = 59.0
picker.mediaTypes = [kUTTypeImage as String, kUTTypeMovie as String]
present(picker, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let videoURL = info[UIImagePickerControllerMediaURL] as? URL {
if UIVideoEditorController.canEditVideo(atPath: videoURL.path) {
picker.dismiss(animated: true, completion: nil)
let editController = UIVideoEditorController()
editController.videoPath = videoURL.path
editController.videoMaximumDuration = 59.0
editController.delegate = self
present(editController, animated:true)
}
}
if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
photoView.image = image
}
}