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

时间:2021-05-25 16:42:57

出现如下错误:

*** -[AVCaptureDevice setTorchMode:] The passed torchMode 1 is not supported - use -isTorchModeSupported: to discover valid torch modes

原因是因为你的设备不支持闪光灯,例如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];

}