UIImagePickerController异常:“源类型必须是UIImagePickerControllerSourceTypeCamera”
问题描述:
这是什么问题?我真的不明白的UIImagePickerController一些重要的零件....UIImagePickerController异常:“源类型必须是UIImagePickerControllerSourceTypeCamera”
这里的源:
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
imagePickerController.delegate = self;
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
我不能打开照片库? 任何帮助表示赞赏!
答
如果您正在使用照片库,是否需要设置cameraCaptureMode
?
答
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
if([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]) {
imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceFront;
} else {
imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;
}
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
}
else {
// do stuff ///....Alert
}
答
也许不是你的情况,但是当你initalize你的UIImagePickerController对象,首先你需要设置,否则任何其他属性,你得到同样的错误前将源类型。
let imagePickerController = UIImagePickerController()
imagePickerController.sourceType = UIImagePickerControllerSourceType.Camera
imagePickerController.cameraCaptureMode =
UIImagePickerControllerCameraCaptureMode.Photo
imagePickerController.cameraDevice = .Front
imagePickerController.showsCameraControls = true;
imagePickerController.navigationBarHidden = false;
imagePickerController.toolbarHidden = false;
imagePickerController.delegate = self
答
我的问题是,我的相机设备设置为.front
设置imagePicker.sourceType = .camera
之前,显然它造成死机。 所以我改变了我的代码:
imagePicker.cameraDevice = .front
imagePicker.sourceType = .camera
这样:
imagePicker.sourceType = .camera
imagePicker.cameraDevice = .front
和问题解决:)
答
我有此相同的例外,但是我没有使用的实例UIImagePickerController控件,而是我在一个UIWebView中显示了一个网页,该网页有一个输入w/HTML Media Access属性来启用摄像头访问。
问题是,它似乎UIWebView不能正确处理HTML媒体访问属性。我注意到这些属性的规范随着时间而改变了几次,所以尽管它看起来像是有效的html,并且在设备上的safari上工作,但它不适用于使用UIWebView呈现的页面。
坏:
<input type="file" accept="image/*" capture="camera" />
好:
<input type="file" accept="image/*;capture=camera" />
异常,立即去了,便拍照工作。这对于iOS 10或11来说似乎是新的,因为它是现有的代码,并且在过去没有爆炸。
那是原因,10倍! – Danail 2010-09-11 15:36:59
其他特性会导致类似的故障,例如cameraViewTransform – dpjanes 2012-05-16 12:28:56