如何打开/closuresiPhone相机闪光?

如何以编程方式打开/closuresiPhone的LED相机闪光灯?

#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]; } } } 

我把计时器和上面的代码结合在一起,它为我工作…

  - (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]; } } } 

你需要在你的.h文件中添加一些void语句(doSOmethingfoo和showAcitivtyfoo)和一个NSTimer(mytimer),以及一些代码

  -(void)doSmethingfoo { myTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(showActivityfoo) userInfo:nil repeats:YES]; } 
Interesting Posts