iOS 10摄像头闪烁开/关不起作用
问题描述:
截至iOS 9闪光灯开/关/自动正常工作。但在iOS 10闪光灯无法正常工作。iOS 10摄像头闪烁开/关不起作用
self.camObj = [[UIImagePickerController alloc] init];
[self addCameraToTheScreen];
NSArray *mediaTypes = [NSArray arrayWithObject:(NSString*)kUTTypeMovie];
self.camObj.mediaTypes = mediaTypes ;
self.camObj.modalTransitionStyle = UIModalPresentationFullScreen;
self.camObj.sourceType = UIImagePickerControllerSourceTypeCamera;
self.camObj.videoMaximumDuration = 10.0f;
self.camObj.showsCameraControls = NO;
self.camOptionsView.frame = [UIScreen mainScreen].bounds;
self.camObj.delegate = (id<UIImagePickerControllerDelegate,UINavigationControllerDelegate>)self;
[self.camObj setCameraOverlayView:self.camOptionsView];
和编程式地改变闪光模式。
[self.camObj setCameraFlashMode:UIImagePickerControllerCameraFlashModeOn];
答
iOS上解决问题10.2。 现在手动相机闪光模式处理再次正常工作,无需启用和禁用showsCameraControls。
答
有报道称,第三方更换零件可能会导致这些症状,特别是对phone needing to cool down and the camera/flash not working消息。 手机上的固件也可能检查内置部件是否为真,如果检测到非Apple硬件,也可能导致这些问题。
答
这是iOS 10(至少从10.0.2开始)的一个错误。请注意,设置cameraFlashMode
确实如果showsCameraControls
已打开,则工作。
答
这是一个iOS的10 BUG,所以你需要从继承的UIImagePickerController并重写cameraFlashMode二传手:
- (void)setCameraFlashMode:(UIImagePickerControllerCameraFlashMode)cameraFlashMode {
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10 && !self.showsCameraControls) {
self.showsCameraControls = YES;
super.cameraFlashMode = cameraFlashMode;
self.showsCameraControls = NO;
} else {
super.cameraFlashMode = cameraFlashMode;
}
}
+0
其工作(Y) –
答
对于iOS 10,尽量先渲染的UIImagePickerController,并重新设置相机的闪光灯。尝试
[self presentViewController:self.camObj animated:YES completion:^{
//For iOS 10 and higher versions so it can set the proper flashmode
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10) {
[self.camObj setCameraFlashMode:UIImagePickerControllerCameraFlashModeOn];
}
}];
希望这可以帮助。
我也看到了。尚未找到解决方法。只要我将其设置为默认模式Auto,闪光灯将按预期工作。当我尝试将模式切换到开启时,模式实际上会切换到关闭。从这一点开始,即使我尝试将其切换回自动,它仍然处于关闭状态。 – cduhn
对于遇到此问题的所有人,请提交一份错误报告,以便将其发布到Apple的雷达上(可以这么说)。 https://bugreport.apple.com/ – cduhn
这在10.2 beta 1中得到了修复。刚刚尝试过。 – DDRBoxman