我最终确定了录制视频时导致UIImagePickerController
崩溃的错误。启用iPhone的VoiceOver辅助功能设置后,录音机在调用presentModalViewController
时必定会崩溃。
到目前为止,我一直未能成功解决问题。有没有其他人经历过这个并且能够修复它?
答案 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,这是我用来设置mediaTypes
和captureMode
的代码:
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];
... 和,显而易见,仅指定电影作为选择器接受的媒体类型:
但是,我能够通过将上述mediaTypes行更改为:
来解决此问题picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:picker.sourceType];
...鉴于默认的相机控件被隐藏,我可以编程控制是否开始录制视频或拍照。
我并不是要了解这次事故的原因。