How to turn the iPhone camera flash on/off? How to turn the iPhone camera flash on/off? ios ios

How to turn the iPhone camera flash on/off?


#import <AVFoundation/AVFoundation.h>

...

- (void) turnTorchOn: (bool) on {    // check if flashlight available    Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");    if (captureDeviceClass != nil) {        AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];        if ([device hasTorch] && [device hasFlash]){            [device lockForConfiguration:nil];            if (on) {                [device setTorchMode:AVCaptureTorchModeOn];                [device setFlashMode:AVCaptureFlashModeOn];                //torchIsOn = YES; //define as a variable/property if you need to know status             } else {                [device setTorchMode:AVCaptureTorchModeOff];                [device setFlashMode:AVCaptureFlashModeOff];                //torchIsOn = NO;                        }            [device unlockForConfiguration];        }    } }


I combined the timer with the above code.it worked for me...

 - (void)viewDidLoad        {         [super viewDidLoad];         myTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self                    selector:@selector(toggleFlashlight) userInfo:nil repeats:YES];        // Do any additional setup after loading the view from its nib.        }       - (void) toggleFlashlight       {    // check if flashlight available    Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");    if (captureDeviceClass != nil) {        AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];        if ([device hasTorch] && [device hasFlash]){            [device lockForConfiguration:nil];            if (device.torchMode == AVCaptureTorchModeOff)             {                [device setTorchMode:AVCaptureTorchModeOn];                [device setFlashMode:AVCaptureFlashModeOn];                //torchIsOn = YES;            }            else             {                [device setTorchMode:AVCaptureTorchModeOff];                [device setFlashMode:AVCaptureFlashModeOff];               // torchIsOn = NO;                        }            [device unlockForConfiguration];        }    } }