设置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]];
}
请测试此代码到设备。
你也可以访问这个参考网址并下载源代码并使用它http://bit.ly/MinpGA –
不工作。在停止录制时看起来有点不妥。我没有调用方法关闭,仍然关闭。 – Nikunj
让我检查一下,尽快回复。 –