尝试使用camera2api
实现触摸对焦。
CaptureRequest.Builder afBuilder = mPreviewBuilder;
Rect newRect=new Rect(0,0,200,200);
MeteringRectangle meteringRectangle=new MeteringRectangle(newRect,METERING_WEIGHT_DONT_CARE);
MeteringRectangle[] areas = afBuilder.get(CaptureRequest.CONTROL_AF_REGIONS);
mPreviewBuilder.set(CaptureRequest.CONTROL_AF_REGIONS,areas);
mPreviewBuilder.set(CaptureRequest.CONTROL_AF_MODE, CameraMetadata.CONTROL_AF_MODE_AUTO);
mPreviewBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START);
mPreviewSession.setRepeatingRequest(mPreviewBuilder.build(), mCaptureCallback, mBackgroundHandler);
在我的回调中,我一直卡在
ACTIVE_SCAN
状态中,偶尔会进入FOCUS_NOT_LOCKED
状态。我似乎永远无法进入FOCUS_LOCKED
状态,预览看起来也不清晰。使用三星Galaxy Note 3手机。
SENSOR_INFO_ACTIVE_ARRAY_SIZE
解决了问题。我将旧的相机代码与新的Camera2
MeteringRectangle
混合在一起。 - Kishore Jethava