установить AVCaptureTorchModeOn

Я хочу включить режим фонарика 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];
    }    
}

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

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

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

5
задан noob 15 May 2013 в 05:32
поделиться