[闪光灯使用时崩溃[AVCaptureDevice setTorchMode:]]

崩溃的日志:*** -[AVCaptureDevice setTorchMode:] The passed torchMode 1 is not supported - use -isTorchModeSupported: to discover valid torch modes (null)

分析:起因是因为是打开闪光灯的时候,有些设备不支持闪光灯导致崩溃。比如ipad不支持闪光灯,解决方法如下。

解决方法:
- (void)switchFlashDeviceWithOn:(BOOL)on {
    // 更改设置的时候必须先锁定设备,修改完后再解锁,否则崩溃
    [self.flashDevice lockForConfiguration:nil];
    
    // 判断设备是否支持闪光灯
    if ([self.flashDevice hasFlash]) {
        if (on) {
            [self.flashDevice setTorchMode:AVCaptureTorchModeOn];
        } else {
            [self.flashDevice setTorchMode:AVCaptureTorchModeOff];
        }
    }else {
        DLog(@"该设备不支持闪光灯")
    }
    
    // 修改完毕解锁
    [self.flashDevice unlockForConfiguration];

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容