我想爲自己開發一款適用於自己的Android相機應用程序(如果有興趣的人可以分享它),在錄製視頻時需要手動對焦。使用android camera2進行手動對焦API
我已經添加了一個SeekBar到谷歌示例Camera2 app,但我找不到實現手動對焦的方式。
我發現Manual focus in camera2, android但它不起作用在我的LG G4上。 股票相機應用程序幾乎是完美的,因爲它不允許在視頻模式下手動對焦。
有沒有人有想法?
編輯:這裏的搜索欄聽者的代碼:
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
mPreviewBuilder.set(CaptureRequest.CONTROL_AF_MODE, CameraMetadata.CONTROL_AF_MODE_OFF);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
float minimumLens = characteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);
float num = (((float)progress) * minimumLens/100);
mPreviewBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE, num);
}
有一個APK(HTTPS: //play.google.com/store/apps/details?id=com.sdgsystems.camera2probe)瞭解設備是否支持Camera2 API,並且LG G4有全面的支持,並列出了MANUAL_SENSOR。我試圖將自動對焦模式設置爲OFF,但是當我將鏡頭焦距設置爲SeekBar的值時,它不會執行任何操作。我編輯了我的主帖,添加了我的代碼。 – Rallph
更新預覽構建器值後,你在哪裏調用mSession.setRepeatingRequest(mPreviewBuilder.build())? –
我實際上不叫它,但它在'onProgressChanged()'中嘗試時有效,非常感謝! – Rallph