teléfono prender online linterna funciona enciende app agitando activar iphone ios xcode ios6

iphone - prender - linterna online



Atenuar el LED de la aplicación linterna iPhone 5 en xCode (3)

Estoy buscando atenuar el LED de la linterna con una opción de control deslizante. Sé que Apple admite esto para iOS 6, sin embargo, no estoy seguro de qué código usar. Aquí está el código que tengo actualmente en el archivo .m.

-(IBAction)torchOn:(id)sender; { onButton.hidden = YES; offButton.hidden = NO; onView.hidden = NO; offView.hidden = YES; AVCaptureDevice *flashLight = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; if([flashLight isTorchAvailable] && [flashLight isTorchModeSupported:AVCaptureTorchModeOn]) { BOOL success = [flashLight lockForConfiguration:nil]; if(success) { [flashLight setTorchMode:AVCaptureTorchModeOn]; [flashLight unlockForConfiguration]; } } } -(IBAction)torchOff:(id)sender; { onButton.hidden = NO; offButton.hidden = YES; onView.hidden = YES; offView.hidden = NO; AVCaptureDevice *flashLight = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; if([flashLight isTorchAvailable] && [flashLight isTorchModeSupported:AVCaptureTorchModeOn]) { BOOL success = [flashLight lockForConfiguration:nil]; if(success) { [flashLight setTorchMode:AVCaptureTorchModeOff]; [flashLight unlockForConfiguration]; } } }

¿Alguna sugerencia?


- (BOOL)setTorchModeOnWithLevel:(float)torchLevel error:(NSError **)outError

Hace lo que quieres Sin embargo, por lo que puedo ver, solo se actualiza en ciertos intervalos (~ 0.2).

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; [device lockForConfiguration:nil]; [device setTorchModeOnWithLevel:slider.value error:NULL]; [device unlockForConfiguration];

Editar - Ejemplo completo:

Aquí hay un UISlider. Necesita agregar una salida de IBAction a su control deslizante o agregar un objetivo mediante programación (como yo):

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(20.0f, 20.0f, 280.0f, 40.0f)]; slider.maximumValue = 1.0f; slider.minimumValue = 0.0f; [slider setContinuous:YES]; [slider addTarget:self action:@selector(sliderDidChange:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:slider];

Luego, en respuesta al cambio del control deslizante:

- (void)sliderDidChange:(UISlider *)slider { AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; [device lockForConfiguration:nil]; [device setTorchModeOnWithLevel:slider.value error:NULL]; [device unlockForConfiguration]; }



Si hay dos controles deslizantes es porque el control deslizante se establece en el m. archivo tiene que eliminar [self.view addSubview:slider]; parte del código.