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]; 
+1

我也看到了。尚未找到解决方法。只要我将其设置为默认模式Auto,闪光灯将按预期工作。当我尝试将模式切换到开启时,模式实际上会切换到关闭。从这一点开始,即使我尝试将其切换回自动,它仍然处于关闭状态。 – cduhn

+2

对于遇到此问题的所有人,请提交一份错误报告,以便将其发布到Apple的雷达上(可以这么说)。 https://bugreport.apple.com/ – cduhn

+0

这在10.2 beta 1中得到了修复。刚刚尝试过。 – DDRBoxman

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]; 
    } 
}]; 

希望这可以帮助。