public void RunPrecaptureSequence() { try { // This is how to tell the camera to trigger. PreviewRequestBuilder.Set(CaptureRequest.ControlAePrecaptureTrigger, (int)ControlAEPrecaptureTrigger.Start); // Tell #mCaptureCallback to wait for the precapture sequence to be set. State = CameraState.WaitingPrecapture; CaptureSession.Capture(PreviewRequestBuilder.Build(), CaptureCallback, BackgroundHandler); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
public void LockFocus() { try { // This is how to tell the camera to lock focus. PreviewRequestBuilder.Set(CaptureRequest.ControlAfTrigger, (int)ControlAFTrigger.Start); // Tell #mCaptureCallback to wait for the lock. State = CameraState.WaitingLock; CaptureSession.Capture(PreviewRequestBuilder.Build(), CaptureCallback, BackgroundHandler); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
/// <summary> /// Lock the focus as the first step for a still image capture. /// </summary> private void LockFocus() { try { // This is how to tell the camera to lock focus. PreviewRequestBuilder.Set(CaptureRequest.ControlAfTrigger, (int)ControlAFTrigger.Start); // Tell #CaptureCallback to wait for the lock. CurrentCameraState = STATE_WAITING_LOCK; // this will kick off the image-capture pipeline CaptureSession.Capture(PreviewRequestBuilder.Build(), CaptureCallback, BackgroundHandler); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
public void UnlockFocus() { try { // Reset the auto-focus trigger PreviewRequestBuilder.Set(CaptureRequest.ControlAfTrigger, (int)ControlAFTrigger.Cancel); SetAutoFlash(PreviewRequestBuilder); CaptureSession.Capture(PreviewRequestBuilder.Build(), CaptureCallback, BackgroundHandler); // After this, the camera will go back to the normal state of preview. State = CameraState.Preview; CaptureSession.SetRepeatingRequest(PreviewRequest, CaptureCallback, BackgroundHandler); } catch (CameraAccessException e) { e.PrintStackTrace(); } }