2012-11-22 4 views
1

을 동결 I 다음 횃불을 켜하는 코드와 플래시를 가지고 : [장치 setTorchMode :] 부분의 모든 플래시 AVCaptureSession

   AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 
      if ([device hasTorch]) { 
       [self.session beginConfiguration]; 
       [device lockForConfiguration:nil]; 
       if(self.flashlightOn == YES) 
       { 
        [device setTorchMode:AVCaptureTorchModeOn]; 
        [device setFlashMode:AVCaptureFlashModeOn]; 
        NSLog(@"TurnFlashOn"); 
       } 
       else 
       { 
        [device setTorchMode:AVCaptureTorchModeOff]; 
        [device setFlashMode:AVCaptureFlashModeOff]; 
        NSLog(@"TurnFlashOff"); 
       } 

       [device unlockForConfiguration]; 
       [self.session commitConfiguration]; 

그러나 코드 내 세션이 나는를 제거하는 경우, 동결 보인다 불려 갔을 경우

잘 작동합니다. 아무도 여기서 무슨 일이 일어나고 있는지 아니?

편집 : IDE없이 응용 프로그램을 실행하는 경우에만 나타나며 ->에 자신의

답변

3

내가 전면 및 후면 카메라 사이의 교환과 문제의 동일한 종류를 가졌다. 처음으로 장치를 사용한 다음 작동 할 때마다 "commitConfiguration"이 멈 춥니 다. 올바른 순서는 다음과 같습니다.

  [self.session beginConfiguration]; 
      [device lockForConfiguration:nil]; 

      //*** Do your session configuration stuff here 

      [device unlockForConfiguration]; 
      [self.session commitConfiguration]; 

      //*** And this is what fixed the problem: 
      self.session startRunning]; 

희망 사항이 당신을위한 트릭입니다.

관련 문제