2012-06-07 4 views
4

Я хочу включить режим факела AVCaptureTorchModeOn в моем приложении во время записи видео.set AVCaptureTorchModeOn

Я использую нижеследующий код.

-(void)set_TorchMode:(BOOL)turnOn 
{ 
AVCaptureDevice *theDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 

    if ([theDevice hasTorch]) { 
     [theDevice lockForConfiguration: nil]; 
     AVCaptureTorchMode currentMode = [theDevice torchMode]; 
     BOOL isAlreadyTurnedOn = (AVCaptureTorchModeOn == currentMode); 
     if (isAlreadyTurnedOn != turnOn) { 
      [theDevice setTorchMode: turnOn? AVCaptureTorchModeOn: AVCaptureTorchModeOff]; 
     } 

     [theDevice unlockForConfiguration]; 
    }  
} 

Я звоню по этому методу во время начала записи, чтобы включить его, и во время остановки записи, чтобы отключить его.

Его работа прекрасна для меня в первый раз, когда я записываю, но во время записи второй раз его включение включается, но сразу выключается. Он не удерживает кнопку ON во время записи.

Спасибо за любую помощь.

ответ

4

Следующий код предназначен для включения и выключения подсветки.

Пусть это помогает вам,

- (void) setTorchOn:(BOOL)isOn 
{ 
    AVCaptureDevice* device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 
    [device lockForConfiguration:nil]; //you must lock before setting torch mode 
    [device setTorchMode:isOn ? AVCaptureTorchModeOn : AVCaptureTorchModeOff]; 
    [device unlockForConfiguration]; 
} 

- (IBAction)changedState:(id)sender { 
    UISwitch *switchValue = (UISwitch*)sender; 
    [self setTorchOn:[switchValue isOn]]; 
} 

пожалуйста проверить этот код в устройство.

+0

Также вы можете посетить этот ссылочный URL и загрузить исходный код и использовать его http://bit.ly/MinpGA –

+0

Не работает. кажется, что-то не так, когда прекращайте запись. Я не вызываю метод, чтобы выключить его, но его отключить. – Nikunj

+0

Позвольте мне проверить это и дать вам ответ как можно скорее. –