2012-06-11 4 views
9

Finalmente he encontrado un error que bloquea un UIImagePickerController al grabar video. Cuando la configuración de accesibilidad de VoiceOver del iPhone está habilitada, la grabadora falla de manera inmejorable al llamar al presentModalViewController.Configuración de accesibilidad de VoiceOver del iPhone bloquea la grabación de video

Hasta ahora no he tenido éxito al encontrar una solución. ¿Alguien más ha experimentado esto y ha sido capaz de solucionarlo?

+0

¿Qué versión de sistema operativo? ¿En qué versiones del sistema operativo no está presente? ¿Has considerado presentar un informe de error? –

+0

Me encuentro con lo mismo, pero solo cuando showsCameraControls está establecido en NO. – kamens

+1

Obtiene dos incidentes de soporte técnico con su cuenta de desarrollador de iOS. Esto suena como un tiempo para eso. Si hay una solución, los chicos de Apple sabrán. – Swizzlr

Respuesta

3

Como @kamens menciona en las observaciones anteriores, una solución alternativa es incluir camera.showsCameraControls = NO en un bloque de terminación al presentar el controlador de vista modal, como este:

[controller presentViewController:self animated:YES completion:^{self.showsCameraControls = NO;}]; 

Sin embargo, con esta solución, la cámara controla flash momentáneamente cuando se presenta la cámara, desaparecen. Obviamente no es ideal cuando los controles realmente necesitan ocultarse. La otra solución es establecer camera.showsCameraControls = OFF ... aún menos ideal.


@quellish, esto es el resultado del accidente:

*** -[PLCameraToggleButton setAccessibilityValue:]: message sent to deallocated instance 0x4a330b0 

@kamens, aquí está el código que estoy usando para establecer el mediaTypes y captureMode:

tmpCamera.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie]; 
tmpCamera.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo; 
+0

¡Magnífico! Después de pasar 1 día completo, encontré tu respuesta. Muchas gracias, funcionó para mí! –

1

Como menciona @james, esto sucede en iOS 5.1 cuando:

  • Usando picker.showsCameraControls = NO
  • Usando animated:NO en su llamada a [viewController presentViewController:picker animated:YES completion:nil];
  • La opción de accesibilidad VoiceOver está activado.

... y, significativamente, cuando sólo especificando las películas como los tipos de medios aceptados por selector:

  • picker.mediaTypes = [NSArray arrayWithObject: (NSString *) kUTTypeMovie];

Sin embargo, yo era capaz de solucionar este problema mediante el cambio de la línea anterior a mediaTypes:

picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:picker.sourceType]; 

... que funciona muy bien teniendo en cuenta que los controles de la cámara por defecto están ocultos y puedo programáticamente controlar si comenzar a grabar un video o tomar una foto.

No pretendo comprender la causa de este bloqueo.

Cuestiones relacionadas