Cómo usar la unidad de flash del dispositivo en iOS

Habilitar la unidad de flash del dispositivo durante una sesión de RA puede ayudar a mejorar visibilidad.

Cómo comprobar que la configuración actual de la cámara admita el flash

No todas las configuraciones de la cámara admiten la habilitación de una unidad de flash. Antes de habilitar Flash u ofrecer a los usuarios la opción de habilitarlo asegúrate de que la unidad de flash esté disponible para la cámara activa actual:

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if (device) {
    return device.hasTorch;
}
return false;

Habilitar la unidad de flash

Habilita la unidad de flash configurando la sesión de RA con AVCaptureTorchModeOn

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if (device) {
    if (device.hasTorch) {
        NSError *error = nil;
        if ([device lockForConfiguration:&error]) {
            device.torchMode = AVCaptureTorchModeOn;
            [device unlockForConfiguration];
        } else {
            return;
        }
    }
}

Inhabilitar la unidad de flash

Desactiva la unidad flash configurando la sesión de RA con AVCaptureTorchModeOff

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if (device) {
    if (device.hasTorch) {
        NSError *error = nil;
        if ([device lockForConfiguration:&error]) {
            device.torchMode = AVCaptureTorchModeOff;
            [device unlockForConfiguration];
        } else {
            return;
        }
    }
}