在iPhone应用中录制视频时切换闪光灯开/关

3

我正在使用iPhone应用录制视频。

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

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

2个回答

5

如果您在使用AVFoundation进行视频录制,应首先检查设备是否有手电筒/闪光灯,因为当从后置摄像头录制视频时,手电筒是可用的,但是在使用前置摄像头时无法使用手电筒/闪光灯。

- (BOOL) hasTorch
{
    return [[[self avCaptureDeviceInput] device] hasTorch];
}

然后使用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];
            }
        }
    }
}

如果您按照苹果公司提供的AVCam演示,基本上可以找到您要的答案。

4
假设您正在使用UIImagePickerController(从您的标签中可以看出),请使用UIImagePickerController提供的cameraFlashMode来控制闪光灯。
您可以将其值设置为UIImagePickerControllerCameraFlashModeOff、UIImagePickerControllerCameraFlashModeAuto或UIImagePickerControllerCameraFlashModeOn。默认设置为自动。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接