UIImagePickerController permite editar = SÍ, get video sin recortar después de cortar

Problema:

Cuando grabo un video en mi UIImagePickerController con permite editar configurado en SÍ, y luego recorté el video usando la interfaz de ajuste que viene después de la captura de video, me devuelven el video original, en lugar del recortado.

Preparar:

Estoy usando un UIImagePickerController para la captura de video, con la propiedad allowsEditing configurada en YES. En el método de delegado didFinishPickingMediaWithInfo , utilizo UIImagePickerControllerMediaURL desde la información NSDictionary para get la URL de la ruta. Los documentos oficiales de Apple no mencionan ninguna URL de video editada por desgracia.

Código:

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType]; if (CFStringCompare ((__bridge CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo) { self.tempVideoPath = [[info objectForKey: UIImagePickerControllerMediaURL] path]; } } 

Me doy count de que esta pregunta es similar a otras que se publicaron aquí en SO, pero no hubo una respuesta definitiva por qué no funciona o por qué la opción está allí. Si se pretende así, no entiendo por qué hay una propiedad 'permite editar' para el selector.

EDITAR: en el dictionary de información que volví están las siguientes teclas:

 info: { UIImagePickerControllerMediaType = "public.movie"; UIImagePickerControllerMediaURL = "file://localhost/private/var/mobile/Applications/F12E4608-FE5A-4EE3-B4E2-8F7D2508C4C8/tmp/capture-T0x21d810.tmp.wabFCC/captunetworkingvideo.MOV"; "_UIImagePickerControllerVideoEditingEnd" = "5.498333333333333"; "_UIImagePickerControllerVideoEditingStart" = "4.273402690887451"; } 

¿Significa esto que tenemos que arreglarlo nosotros mismos con estos datos? Entonces, la documentation de Apple no es muy clara al respecto. Si es así, ¿conoce una buena práctica para esto?

Eche un vistazo a la respuesta resaltada en esta publicación:

Cómo recortar el video mediante AVFoundation

Creo que es exactamente lo que quieres. La respuesta también usa UIImagePickerController

Espero que ayude, Mário

Deberá usar un UIVideoEditorController para esto. Su Delegate Protocol especifica un método videoEditorController:didSaveEditedVideoToPath: que parece ser lo que desea. Hay un código de ejemplo disponible aquí , como se hace reference en esta pregunta SO .