2012-06-11 1 views
9

Ho finalmente individuato un errore che causa l'arresto anomalo di uno UIImagePickerController durante la registrazione di un video. Quando l'impostazione di accessibilità VoiceOver dell'iPhone è abilitata, il registratore si arresta in modo anomalo quando chiama presentModalViewController.Le impostazioni di accessibilità di VoiceOver per iPhone bloccano la registrazione video

Finora non sono riuscito a trovare una soluzione alternativa. Qualcun altro ha provato questo ed è stato in grado di risolverlo?

+0

Quale versione del sistema operativo? In quali versioni del sistema operativo non è presente? Hai preso in considerazione la possibilità di presentare una segnalazione di bug? –

+0

Sto incontrando lo stesso, ma solo quando showCameraControls è impostato su NO. – kamens

+1

Hai due incidenti di supporto tecnico con il tuo account sviluppatore iOS. Questo suona come un tempo per questo. Se c'è una soluzione, i ragazzi di Apple lo sapranno. – Swizzlr

risposta

3

Come @kamens menzionato nelle osservazioni sopra, una soluzione è includere camera.showsCameraControls = NO in un blocco completamento presentando il controller di vista modale, in questo modo:

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

Tuttavia, con questa soluzione, la fotocamera controlla lampo momentaneamente mentre la fotocamera viene presentata, poi scompaiono. Ovviamente non è l'ideale quando i controlli devono davvero essere nascosti. L'altra soluzione alternativa è impostare camera.showsCameraControls = OFF ... ancora meno ideale.


@quellish, questo è l'uscita dal crollo:

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

@kamens, ecco il codice che sto usando per impostare il mediaTypes e captureMode:

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

Stupendo! Dopo aver trascorso 1 giorno completo ho trovato la tua risposta. Grazie mille, ha funzionato per me! –

1

Come @james menziona, questo accade in iOS 5.1 quando:

  • Utilizzando picker.showsCameraControls = NO
  • Utilizzando animated:NO nella chiamata a [viewController presentViewController:picker animated:YES completion:nil];
  • L'opzione di accessibilità VoiceOver è abilitato.

... e, in modo significativo, quando solo specificando i filmati come i tipi di supporti accettati dalla raccoglitrice:

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

Tuttavia, sono stato in grado di risolvere questo problema modificando la linea di cui sopra mediaTypes a:

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

... che funziona bene dato che i controlli della fotocamera di default sono nascosti e posso programmazione controlla se iniziare a registrare un video o scattare una foto.

Non pretendo di capire la causa di questo incidente.