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

请在设备中测试此代码。

相关内容

  • 没有找到相关文章

最新更新