camera.mPreviewBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_AUTO); camera.mPreviewBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START); camera.mPreviewBuilder.setTag("FOCUS_TAG");
@Override public void onCaptureCompleted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull TotalCaptureResult result) { if(request.getTag() == ("FOCUS_TAG")) { //The focus trigger is complete! //Resume repeating request, clear AF trigger. mAutoFocusCallback.onAutoFocus(true); mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, null); mPreviewRequestBuilder.setTag(""); mPreviewRequest = mPreviewRequestBuilder.build(); try { mCaptureSession.setRepeatingRequest(mPreviewRequest, mCaptureCallback, mBackgroundHandler); } catch(CameraAccessException ex) { Log.d(TAG, "AUTO FOCUS FAILURE: "+ex); } } else { process(result); } }
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_AUTO); mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START); mPreviewRequestBuilder.setTag("FOCUS_TAG"); //we'll capture this later for resuming the preview!
captureRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_AUTO); captureRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER, CameraMetadata.CONTROL_AF_TRIGGER_START); captureRequestBuilder.setTag("FOCUS_TAG"); // we'll capture this later for resuming the preview
captureBuilder.setTag(mRequestCounter.getAndIncrement());
/** * Callbacks for CameraOps */ @Override public void onCameraReady() { // Ready to send requests in, so set them up try { CaptureRequest.Builder previewBuilder = mCameraOps.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); previewBuilder.addTarget(mProcessingNormalSurface); previewBuilder.setTag(mAutoExposureTag); mPreviewRequest = previewBuilder.build(); mHdrBuilder = mCameraOps.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); mHdrBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF); mHdrBuilder.addTarget(mProcessingHdrSurface); switchRenderMode(0); } catch (CameraAccessException e) { String errorMessage = getErrorString(e); showErrorDialog(errorMessage); } }
/** * Start running an HDR burst on a configured camera session */ public void setHdrBurst() { mHdrBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, 1600); mHdrBuilder.set(CaptureRequest.SENSOR_FRAME_DURATION, ONE_SECOND / 30); mHdrBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, mEvenExposure); mHdrBuilder.setTag(mEvenExposureTag); mHdrRequests.set(0, mHdrBuilder.build()); mHdrBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, mOddExposure); mHdrBuilder.setTag(mOddExposureTag); mHdrRequests.set(1, mHdrBuilder.build()); mCameraOps.setRepeatingBurst(mHdrRequests, mCaptureCallback, mUiHandler); }