设置AVCaptureTorchModeOn

问题描述:

我想在我的应用程序中打开火炬模式AVCaptureTorchModeOn,同时进行视频录制。设置AVCaptureTorchModeOn

我使用下面的代码。

-(void)set_TorchMode:(BOOL)turnOn 
{ 
AVCaptureDevice *theDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 

    if ([theDevice hasTorch]) { 
     [theDevice lockForConfiguration: nil]; 
     AVCaptureTorchMode currentMode = [theDevice torchMode]; 
     BOOL isAlreadyTurnedOn = (AVCaptureTorchModeOn == currentMode); 
     if (isAlreadyTurnedOn != turnOn) { 
      [theDevice setTorchMode: turnOn? AVCaptureTorchModeOn: AVCaptureTorchModeOff]; 
     } 

     [theDevice unlockForConfiguration]; 
    }  
} 

我开始记录时打开这个方法打开,同时停止记录将其关闭。

当我第一次录制时,它对我来说工作很好,但是当第二次开始录制时,它开启但立即关闭。它在录制运行时不会保持开启状态。

感谢您的任何帮助。

以下代码用于开启和关闭背光。

愿这帮助你,

- (void) setTorchOn:(BOOL)isOn 
{ 
    AVCaptureDevice* device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 
    [device lockForConfiguration:nil]; //you must lock before setting torch mode 
    [device setTorchMode:isOn ? AVCaptureTorchModeOn : AVCaptureTorchModeOff]; 
    [device unlockForConfiguration]; 
} 

- (IBAction)changedState:(id)sender { 
    UISwitch *switchValue = (UISwitch*)sender; 
    [self setTorchOn:[switchValue isOn]]; 
} 

请测试此代码到设备。

+0

你也可以访问这个参考网址并下载源代码并使用它http://bit.ly/MinpGA –

+0

不工作。在停止录制时看起来有点不妥。我没有调用方法关闭,仍然关闭。 – Nikunj

+0

让我检查一下,尽快回复。 –