最近項目中有掃描二維碼的功能,我想添加一個打開手電筒的操作,實現(xiàn)過程如下:
?在項目中導入 AVFoundation.framework 依賴庫,在實現(xiàn)類中導入頭文件
#import ?
實現(xiàn)代碼如下:
// 開關按鈕
- (void)RightButton
{
//? ? AVCaptureDevice *device = [UIDevice currentDevice];
self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
//修改前必須先鎖定
[self.device lockForConfiguration:nil];
//必須判定是否有閃光燈,否則如果沒有閃光燈會崩潰
if ([self.device hasFlash]) {
if (self.device.flashMode == AVCaptureFlashModeOff) {
self.device.flashMode = AVCaptureFlashModeOn;
self.device.torchMode = AVCaptureTorchModeOn;
} else if (self.device.flashMode == AVCaptureFlashModeOn) {
self.device.flashMode = AVCaptureFlashModeOff;
self.device.torchMode = AVCaptureTorchModeOff;
}
}
[self.device unlockForConfiguration];
}