Usar a unidade de flash do dispositivo no iOS

Ativar a unidade de flash do dispositivo durante uma sessão de RA pode ajudar a melhorar visibilidade.

Verificar se a configuração atual da câmera é compatível com o flash

Nem todas as configurações de câmera oferecem suporte à ativação de uma unidade de flash. Antes de ativar o flash ou oferecer aos usuários a opção de ativar o flash, verifique se a unidade de flash está disponível para a configuração da câmera ativa:

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

Ativar a unidade de flash

Ative a unidade de flash configurando a sessão de RA com 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;
        }
    }
}

Desativar a unidade de flash

Desative a unidade de flash configurando a sessão de RA com 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;
        }
    }
}