在iPhone上同时打开闪光灯和前置摄像头

3

我需要使用iPhone的前置摄像头并打开背光LED。如何实现?我可以使用以下代码打开前置摄像头:

- (void) turnCameraOn {
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
    imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
    imagePicker.showsCameraControls = YES;

    [self presentViewController:imagePicker animated:YES completion:nil];

} else {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Camera unavaliable"
                                                    message:@"Unable to find camera on your device."
                                                   delegate:nil
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil, nil];
    [alert show];
    alert = nil;
}
}

我可以使用这段代码打开LED灯

- (void) turnTorchOn: (bool) on {
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if ([device hasTorch] && [device hasFlash]){

        [device lockForConfiguration:nil];

        if (on) {
            [device setTorchMode:AVCaptureTorchModeOn];
            [device setFlashMode:AVCaptureFlashModeOn];
        } else {
            [device setTorchMode:AVCaptureTorchModeOff];
            [device setFlashMode:AVCaptureFlashModeOff];
        }
        [device unlockForConfiguration];
    }
}
}

当我打开应用程序并且前置摄像头出现时,LED灯会关闭。 我需要同时让它们两个都能工作。

谢谢!


到目前为止有什么进展了吗? - Ankish Jain
看起来苹果可以做到这一点。因为如果你注意到了,苹果手电筒不像其他所有手电筒应用程序那样访问相机。 - rendellhb
@rendellhb:我想在安卓上实现同样的功能。你知道这是否可能吗? - Basher51
2个回答

0

使用当前的API,iOS不允许这样做。

你可以通过苹果自己的相机应用程序来理解这一点。

即使他们在切换到前置摄像头时也会关闭手电筒,并且在该模式下不显示手电筒开关。


0
文档中查看UIImagePickerController的isFlashAvailableForCameraDevice属性,以检查是否允许在UIImagePickerControllerCameraDeviceFront属性下使用闪光灯。

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