我正在从我的 iPhone 应用程序录制视频。
我在相机上使用了一个叠加层,并在叠加层中放置了一个按钮。我想知道在录制视频时可以通过哪个功能打开/关闭相机的闪光灯。
如何在相机叠加层中设置闪光灯按钮?
我正在从我的 iPhone 应用程序录制视频。
我在相机上使用了一个叠加层,并在叠加层中放置了一个按钮。我想知道在录制视频时可以通过哪个功能打开/关闭相机的闪光灯。
如何在相机叠加层中设置闪光灯按钮?
如果您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 进行操作,您基本上会得到答案。
假设您正在使用 UIImagePickerController(来自您的标签),请使用 UIImagePickerController 提供的cameraFlashMode来控制闪光灯。
您可以将其值设置为 UIImagePickerControllerCameraFlashModeOff、UIImagePickerControllerCameraFlashModeAuto 或 UIImagePickerControllerCameraFlashModeOn。默认为自动。