2014-03-18 3 views
4

에 false를 반환하지만 AVCaptureDevice의 isLowLightBoostSupported가 true를 반환 할 수 완전히 수 없었습니다.AVCaptureDevice의 isLowLightBoostSupported는 항상 (automaticallyEnablesLowLightBoostWhenAvailable에 대한) 5S iOS7.1 내가 아이폰 OS 카메라 앱에서 AVCaptureDevice의 automaticallyEnablesLowLightBoostWhenAvailable을 사용할 수 있도록 설정하는거야

질문 : 구성을 위해 잠금을 넘어 낮은 조명 부스트 API를 사용하려면 수행해야 할 것이 있습니까? isLowLightBoostSupported가 완전히 업데이트 된 최신 시스템에서 항상 false를 반환하는 것으로 알려진 이유가 있습니까?

iOS 7.1을 사용하는 5S에서 테스트하고 있습니다.

이 질문에서 간단히하기 위해 변경 사항을 Apple의 AVCam 테스트 앱에 포팅했습니다. 내가 더 명확하게하기 위해 that code in the context of AVCam online at github을 넣었습니다

diff --git a/AVCam/AVCam/AVCamViewController.m b/AVCam/AVCam/AVCamViewController.m 
index 84a2c77..4e15fc4 100644 
--- a/AVCam/AVCam/AVCamViewController.m 
+++ b/AVCam/AVCam/AVCamViewController.m 
@@ -175,6 +175,18 @@ static void * SessionRunningAndDeviceAuthorizedContext = &SessionRunningAndDevic 
      [session addOutput:stillImageOutput]; 
      [self setStillImageOutput:stillImageOutput]; 
     } 
+ 
+  if ([videoDevice respondsToSelector:@selector(isLowLightBoostSupported)]) { 
+   if ([videoDevice lockForConfiguration:nil]) { 
+    if (videoDevice.isLowLightBoostSupported) { 
+     videoDevice.automaticallyEnablesLowLightBoostWhenAvailable = YES; 
+     NSLog(@"was supported"); 
+    } else { 
+     NSLog(@"was not supported"); 
+    } 
+    [videoDevice unlockForConfiguration]; 
+   } 
+  } 
    }); 
} 

: 같은 AVCam의 DIFF입니다.

나는 답을 찾기 위해 문서와 SO를 트롤링했습니다. 여기에 내 현재 코드를 교육 한 몇 가지 있습니다 : 나는 또한 AVCaptureSessionPresetHigh, AVCaptureSessionPresetPhoto 모두에 AVCaptureSession 인스턴스의 sessionPreset을 설정하려고 시도했습니다

는, 및 AVCaptureSessionPresetLow는 isLowLightBoostSupported의 상태에 대한 관찰 가능한 영향을주지 않습니다.

이 글을 읽어 주셔서 감사 드리며 도움을 주실 수 있습니다! :)

+0

업데이트 : 일부 테스트 비행과 iOS7.1에서 4 개의 기기를 테스트했는데 2 개의 5S 기기가이 문제를 재현하고 2 개의 기기가 그렇지 않습니다. 알려진 5S 문제가 있습니까? – zethraeus

답변

2

나는 5S가 저조도 부스트 모드를 지원하지 않는다는 것을 알고 있습니다. 나는 이것에 대한 애플의 결정에 대해 통찰력을 갖고 있지는 않지만 5S의 카메라/센서에 대한 개선이 충분히 낮아서 저 조명 증가가 필요하지 않다고 생각했다.

그래서,보고있는 것은 오류가 아닙니다. 그것은 일부 장치가 해당 기능 (iPhone 5)을 지원하고 일부는 (iPhone 5S)을 지원하지 않는다는 것입니다.

호환 장치 목록을 게시 하겠지만 새로운 iPod Touch 및 일부 iPad를 테스트 할 수있는 권한이 없습니다. 나는 그 장치가 근본적으로 reskinned 아이폰 5이기 때문에 iphone 5c가 그것을 지원한다고 생각 하겠지만 다시 테스트 할 필요가 없다.

+0

감사합니다. 이것은 의미가 있습니다 :) – zethraeus

+1

또한 iPhone 6S plus – Cbas

+0

에서 지원되지 않는 것 같습니다. iPhone 7 Plus에서도 지원되지 않는 것 같습니다. 문제는 저조도에서 AVCam AVCaptureSession을 사용하여 특히 iphone7 및 iphone 7 plus에 저조도에서 캡처 한 비디오 픽셀이 왜곡되어 보이는 것입니다. –