我有一个使用 AVFoundation 的相机应用程序。当用户拍照时,他们可以按下按钮来打开和关闭闪光灯。现在这对后置摄像头非常有效,但我无法让它适用于前置摄像头。
无论我做什么,前置摄像头都不会使用闪光灯。
这是我用来在按钮按下时打开和关闭闪光灯的代码:
-(IBAction)toggleFlash {
NSLog(@"Toggle flash button has been pressed");
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices) {
if ([device hasFlash] == YES) {
NSLog(@"Current Device Flash Mode: %d", device.flashMode);
[device lockForConfiguration:nil];
if(device.flashMode == 0) {
[device setFlashMode:AVCaptureFlashModeOn];
NSLog(@"New device flash mode: %d", device.flashMode);
} else if (device.flashMode == 1) {
[device setFlashMode:AVCaptureFlashModeOff];
NSLog(@"New device flash mode: %d", device.flashMode);
} else if (device.flashMode == 2) {
[device setFlashMode:AVCaptureFlashModeOn];
}
[device unlockForConfiguration];
}
}
}