9

UIImagePickerController我终于确定了一个在录制视频时崩溃的错误。启用 iPhone 的 VoiceOver 辅助功能设置后,录音机在通话时不会失败presentModalViewController

到目前为止,我一直没有成功地想出一个解决方法。有没有其他人经历过这个并能够解决它?

4

2 回答 2

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,这是我用来设置mediaTypesand的代码captureMode

tmpCamera.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
tmpCamera.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
于 2012-06-18T14:59:36.083 回答
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];

...考虑到默认的相机控件是隐藏的,并且我可以以编程方式控制是开始录制视频还是拍照,这很好用。

我不声称了解这次崩溃的原因。

于 2012-06-19T07:03:12.077 回答