2

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

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

如何在相机叠加层中设置闪光灯按钮?

4

2 回答 2

4

如果您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];
            }
        }
    }
}

如果您按照Apple 的 AVCam Demo 进行操作,您基本上会得到答案。

于 2013-03-06T11:29:23.577 回答
4

假设您正在使用 UIImagePickerController(来自您的标签),请使用 UIImagePickerController 提供的cameraFlashMode来控制闪光灯。

您可以将其值设置为 UIImagePickerControllerCameraFlashModeOff、UIImagePickerControllerCameraFlashModeAuto 或 UIImagePickerControllerCameraFlashModeOn。默认为自动。

于 2013-03-06T11:33:49.937 回答