出现如下错误:
*** -[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];
}