2011-11-29 3 views
2

저는 Motorola Droid X를 사용하고 있으며, 어떤 이유로 onAutoFocus (boolean success, 카메라 카메라)의 성공 변수가 항상 false를 반환합니다. 그것은 Droid 2를 포함하여 다른 장치와 함께 작동하는 것 같습니다 그래서 그것은 장치 특정 문제로 보인다.Droid X 카메라 자동 포커스 콜백은 항상 false를 반환합니다.

내 코드는 기본적으로 이것이다 :

camera.autoFocus(new AutoFocusCallback() { 
    @Override 
    public void onAutoFocus(boolean success, Camera camera) { 
     takePicture(); 
    } 
}); 

답변

5

디버깅 시간 후, 문제가 큰 크기로 표면 뷰의 미리보기 크기를 설정했다. 나는 그것이 왜 자동 초점에 영향을 미칠지 모르지만 미리보기 크기를 더 작은 크기로 설정하면 문제가 해결됩니다. 이는 미리보기 크기가 화면 해상도보다 크기 때문에 작동하지 않는 유일한 해상도이기 때문에 발생할 수 있습니다. 이것이이 문제를 겪을만한 다른 사람들에게 도움이되기를 바랍니다.

업데이트 : 내 미리보기 페이지의 레이아웃을 변경 한 후에이 문제가 다시 발생하여 특정 미리보기 크기에 포커스가 맞지 않는 것처럼 보입니다. 지금까지이 크기는 실패했습니다 : 720x480, 1280x720

+0

나는 똑같은 문제가있었습니다; SDK에서 제공하는 미리보기 샘플 코드에이 문제가 있습니다. –

+1

어떻게 해결할 수 있습니까? 인위적으로 다른 미리보기 크기와 희망을 선택합니까? – RealCasually

0

나는 dt0의 대답에 동의합니다. 나는 최적의 미리보기 크기를 결정할 때 단순히 화면 내성을 증가 안드로이드 샘플에서 미리보기 클래스를 사용하고, 그리고 그것을 해결하기 위해 (이 변경으로

private Size getOptimalPreviewSize(List<Size> sizes, int w, int h) { 
    final double ASPECT_TOLERANCE = 0.2; // this was 0.1 
    double targetRatio = (double) w/h; 
    ... 
} 

을하기보다는 720X480에 최적의 크기를 설정하는 자동 초점이 실패 함), 최적의 크기를 640x480으로 설정합니다. 나는 아직도 이것이 문제를 해결하는 이유를 이해하지 못한다. (실제 크기는 734x480이다.) 그러나 나는 그것이 행복하다는 것을 알고있다.

0

나는 0.3을 가지고 일해야했다.

final double ASPECT_TOLERANCE = 0.3; // this was 0.1 

또한, 나는 내가 surfaceCreated(SurfaceHolder holder)startPreview()라고하면, 자동 초점이 더 나은 찾고 미리보기 화면 비율로 작동 할 것을 발견했다. 그러나 그때 미리보기는 은하계에서는 전혀 작동하지 않습니다.

관련 문제