2015-05-20 332 views
3

根據官方Google團隊聲明,Android 5.1上的CONTROL_AE_EXPOSURE_COMPENSATION手動更改已損壞。我正在尋找解決方法幾天,我發現唯一一個連接到SENSOR_INFO_SENSITIVITY_RANGE。但是,我發現使用它有一些困難。我的代碼如下所示:Android Camera2 API手動曝光更改

if(!modeDisabled){ 
        mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF); 
        modeDisabled=true; 
       } 
       range1 = characteristics.get(CameraCharacteristics.SENSOR_INFO_SENSITIVITY_RANGE); 
       minmin = range1.getLower(); 
       maxmax = range1.getUpper(); 
       int iso = ((i * (maxmax - minmin))/100 + minmin); 
       mPreviewRequestBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, iso); 


mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), null, mBackgroundHandler); 

當然的「I」值是從搜索條採取了進度值和everyting在OnProgressChanged功能關閉。

問題是在操縱搜索欄時沒有可見的變化。我會很樂意提供任何幫助。

回答

1

CONTROL_AE_EXPOSURE_COMPENSATION在Android 5.1中一般不會被破壞,它僅在Nexus 6上被禁用(並且將在未來的更新中重新啓用)。

如果您禁用自動曝光,除了靈敏度外,您可能還需要設置曝光時間。你最好還是需要設置幀的持續時間,儘管兩者的默認值可能是1/30s,這是合理的。您還可以複製自動曝光的最新捕捉結果的最新值。

這就是說,你仍然應該在這裏看到某種改變。在將其設置爲重複請求之後,您是否有可能在其他地方覆蓋捕獲請求?您可以查看返回的捕捉結果,查看相機設備正在接收的靈敏度。