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];
}
}
}