iPhone VoiceOver辅助功能设置会导致视频录制崩溃

时间:2012-06-11 16:05:51

标签: iphone objective-c uiimagepickercontroller

我最终确定了录制视频时导致UIImagePickerController崩溃的错误。启用iPhone的VoiceOver辅助功能设置后,录音机在调用presentModalViewController时必定会崩溃。

到目前为止,我一直未能成功解决问题。有没有其他人经历过这个并且能够修复它?

2 个答案:

答案 0 :(得分:3)

正如@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,这是我用来设置mediaTypescaptureMode的代码:

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

答案 1 :(得分:1)

正如@james所提到的,这种情况发生在iOS 5.1中:

  • 使用picker.showsCameraControls = NO
  • 在致电animated:NO
  • 时使用[viewController presentViewController:picker animated:YES completion:nil];
  • 已启用VoiceOver辅助功能选项。

... ,显而易见,仅指定电影作为选择器接受的媒体类型:

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

但是,我能够通过将上述mediaTypes行更改为:

来解决此问题
picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:picker.sourceType];

...鉴于默认的相机控件被隐藏,我可以编程控制是否开始录制视频或拍照。

我并不是要了解这次事故的原因。