private void UpdatePreview() { if (CameraDevice == null || CameraCaptureSession == null) { return; } CaptureRequestBuilder.Set(CaptureRequest.ControlMode, new Java.Lang.Integer((int)ControlMode.Auto)); var thread = new HandlerThread("CameraPreview"); thread.Start(); var backgroundHandler = new Handler(thread.Looper); CameraCaptureSession.SetRepeatingRequest(CaptureRequestBuilder.Build(), null, backgroundHandler); }
protected override void CreateCameraCaptureSession() { try { CaptureRequestBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.StillCapture); CaptureRequestBuilder.AddTarget(_imageReader.Surface); var surfaces = new List <Surface> { _imageReader.Surface }; CameraDevice.CreateCaptureSession(surfaces, CameraCaptureSessionStateHandler, null); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
public void StartPreview() { if (CameraDevice == null || !this.IsAvailable || previewSize == null) { return; } var texture = this.SurfaceTexture; texture.SetDefaultBufferSize(previewSize.Width, previewSize.Height); var surface = new Surface(texture); CaptureRequestBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.Preview); CaptureRequestBuilder.AddTarget(surface); CameraDevice.CreateCaptureSession(new List <Surface> { surface }, GetYsCameraCaptureSessionStateCallback(), null); }