如何开启/关闭iPhone相机闪光灯?

问题描述:

如何以编程方式打开/关闭iPhone的LED相机闪光灯?如何开启/关闭iPhone相机闪光灯?

+1

不要忘了添加AVFoundation.framework也... – raaz 2012-03-23 17:29:44

你将需要几个空语句(doSOmethingfoo和showAcitivtyfoo)和的NSTimer(mytimer)在您的.h文件中,有一些代码

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

这与主题无关。 – 2014-04-08 03:02:38

+1

你喝醉了吗? – Peter 2017-01-05 00:46:00

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

你在哪里宣布'torchIsOn'? – Houssni 2013-02-03 17:44:11

+0

@YassineHoussni你可以将它定义为类名称中的iVar或属性,如果你需要getter和setter – Dejell 2013-02-06 12:50:23

+0

@Odelya是的我已经找到了解决方案,我已经将它定义为一个属性,谢谢! – Houssni 2013-02-06 12:53:06

我结合上述code.it定时器为我工作...

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

更容易把它放在viewDidAppear中。 – 2015-03-30 16:50:38