在 iPhone 应用程序中录制视频时打开/关闭闪光灯

3 iphone video-capture uiimagepickercontroller ios

我正在从我的 iPhone 应用程序录制视频。

我在相机上使用了覆盖层,并在覆盖层中放置了一个按钮。我想知道在录制视频时可以使用哪个功能来打开/关闭相机的闪光灯。

如何在相机覆盖层中设置闪光灯按钮?

nsg*_*ver 5

如果您用于AVFoundation视频录制,您应该首先检查设备是否有手电筒/闪光灯,因为从后置摄像头录制视频时手电筒可用,而使用前置摄像头时则不能有手电筒/闪光灯。使用这样的东西

- (BOOL) hasTorch
{
    return [[[self avCaptureDeviceInput] device] hasTorch];
}
Run Code Online (Sandbox Code Playgroud)

然后使用相应地设置割炬AVCaptureTorchMode

- (void) setTorchMode:(AVCaptureTorchMode)torchMode
{
    AVCaptureDevice *device = [[self videoInput] device];
    if ([device isTorchModeSupported:torchMode] && [device torchMode] != torchMode) {
        NSError *error;
        if ([device lockForConfiguration:&error]) {
            [device setTorchMode:torchMode];
            [device unlockForConfiguration];
        } else {
            id deleg = [self delegate];
            if ([deleg respondsToSelector:@selector(acquiringDeviceLockFailedWithError:)]) {
                [deleg acquiringDeviceLockFailedWithError:error];
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您关注Apple 的 AVCam 演示,您基本上会得到答案。