2012-06-13 20 views
6

Trong ứng dụng hiện tại của tôi, tôi đã có một lớp đang giữ một đối tượng Camera và cố gắng thực hiện như sau:Android 4 - Camera White Balancing dừng sau autoFocus

1) Đợi một thời gian nhất định, ví dụ: không có gì (điều này được thực hiện thông qua một TimerTask) 2) Yêu cầu để tập trung thông qua tự động lấy nét 3) Trong autofocus gọi lại, yêu cầu OneShotPreviewCallback 4) Trong preview gọi lại, lưu hình ảnh 5) Lặp lại

Trong khi cân bằng trắng đang làm việc tốt trước autoFocus đầu tiên, nó dừng lại sau khi tập trung đầu tiên đã được thực hiện. Vâng, tất nhiên tôi đã tra cứu API và có một câu lệnh thú vị trong mô tả tự động lấy nét.

Tuy nhiên, thường xuyên lấy nét tự động có thể ngừng tự động phơi sáng và cân bằng trắng tự động trong khi lấy nét.

Nhưng có vẻ như nó không chỉ dừng lại một cách thoáng qua, mà là một cách vĩnh viễn. Vui đủ, với cuộc gọi tiếp theo của autoFocus, máy ảnh sẽ cố gắng điều chỉnh làm trắng một lần nữa, nhưng giá trị chính xác chủ yếu chỉ với autoFocus thứ hai hoặc thứ ba.

Tôi cũng đã cố gắng đặt cân bằng trắng trong mã, nhưng nó không thay đổi bất cứ điều gì.

setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO); 

Có ai khác biết vấn đề này hoặc tôi thiếu một số điểm không? Tôi biết rằng tôi có thể gọi autoFocus vĩnh viễn để buộc cân bằng trắng, nhưng điều đó dường như không phải là cách tối ưu cho tôi, bởi vì trước cuộc gọi đầu tiên auf autoFocus, nó hoạt động hoàn toàn tốt.

P .: Tôi đang thử nghiệm trên Samsung Galaxy S2 với Android 4.0.3.

+0

** Tôi đã tìm thấy hành vi tương tự trên Samsung galaxy S2 **, Sau khi tự động đầu tiên, nó dừng cập nhật WhiteBalance. – swiftBoy

Trả lời

1

Tôi gặp vấn đề tương tự trên Samsung Galaxy Ace - sau khi lấy nét tự động đầu tiên, cân bằng trắng của camera sẽ tắt và không bật lại, cho dù tôi có tự động lấy nét sau bao lâu.

Vì không có phương pháp API để yêu cầu máy ảnh tiếp tục cân bằng trắng và đặt lại thông số máy ảnh trong gọi lại tự động lấy nét không thực hiện mẹo, tôi đoán đó là lỗi trong trình điều khiển máy ảnh trong điện thoại Samsung - I ' đã thử ứng dụng của tôi với các điện thoại khác nhau và chỉ trên Samsung Galaxy Ace này (GT-S5830; cập nhật lên Android 2.3.3), cân bằng trắng của máy ảnh không tiếp tục sau khi lấy nét tự động.

Có lẽ chúng tôi sẽ phát hành một vé lỗi trên developer.samsung.com?

-1

Có vẻ như mCamera.stopPreview(); mCamera.startPreview(); trong AutoFocusCallback có thể bật lại phơi sáng tự động, nhưng tạm dừng rất ngắn trên bản xem trước dưới dạng hiệu ứng phụ.

3

Tôi đã gặp sự cố tương tự trên Samsung Galaxy 2 Duos 2. Trong trường hợp này, cài đặt phơi sáng tự động đã ngừng hoạt động thay vì WB. Tôi đã cố gắng để chu kỳ (on/off) param phơi sáng tự động và nó làm việc cho tôi.

mCamera.autoFocus(new Camera.AutoFocusCallback() { 

    @Override 
    public void onAutoFocus(boolean b, Camera camera) { 

     Camera.Parameters params = camera.getParameters(); 
     if (params.isAutoExposureLockSupported()) { 
      params.setAutoExposureLock(true); 
      camera.setParameters(params); 

      params = camera.getParameters(); 
      params.setAutoExposureLock(false); 
      camera.setParameters(params); 
     } 
    } 

}); 
Các vấn đề liên quan