私はついにUIImagePickerController
ビデオを録画するときにクラッシュするバグを突き止めました。iPhoneのVoiceOverアクセシビリティ設定を有効にすると、通話時にレコーダーが必ずクラッシュしpresentModalViewController
ます。
私はこれまで回避策を考え出すことに失敗してきました。他の誰かがこれを経験し、それを修正することができましたか?
私はついにUIImagePickerController
ビデオを録画するときにクラッシュするバグを突き止めました。iPhoneのVoiceOverアクセシビリティ設定を有効にすると、通話時にレコーダーが必ずクラッシュしpresentModalViewController
ます。
私はこれまで回避策を考え出すことに失敗してきました。他の誰かがこれを経験し、それを修正することができましたか?
上記のコメントで@kamensが述べたように、回避策は、次のようにcamera.showsCameraControls = NO
、モーダルビューコントローラーを提示するときに完了ブロックに含めることです。
[controller presentViewController:self animated:YES completion:^{self.showsCameraControls = NO;}];
ただし、このソリューションでは、カメラが提示されるとカメラコントロールが瞬間的に点滅し、その後消えます。コントロールを本当に非表示にする必要がある場合は、明らかに理想的ではありません。他の回避策は、設定することcamera.showsCameraControls = OFF
です...さらに理想的ではありません。
@quellish、これはクラッシュからの出力です:
*** -[PLCameraToggleButton setAccessibilityValue:]: message sent to deallocated instance 0x4a330b0
@kamens、これが私がとを設定するために使用しているコードmediaTypes
ですcaptureMode
:
tmpCamera.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
tmpCamera.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
@jamesが言及しているように、これはiOS5.1で次の場合に発生します。
picker.showsCameraControls = NO
animated:NO
する[viewController presentViewController:picker animated:YES completion:nil];
...そして、重要なことに、ピッカーが受け入れるメディアタイプとして映画のみを指定する場合:
ただし、上記のmediaTypes行を次のように変更することでこれを修正できました。
picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:picker.sourceType];
...デフォルトのカメラコントロールが非表示になっていて、ビデオの録画を開始するか写真を撮るかをプログラムで制御できることを考えると、これは正常に機能します。
私はこのクラッシュの原因を理解しているとは言いません。