13. val imageAnalyzer = ImageAnalysis.Builder()
.setTargetResolution(Size(720, 1280))
// non-blocking mode can be enabled by this line
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.build()
23. •A new class, ProcessCameraProvider
•Using concurrency api for initialisation
Initialisation
24. val cameraProviderFuture = ProcessCameraProvider.getInstance(context)
cameraProviderFuture.addListener(Runnable {
val cameraProvider:ProcessCameraProvider =
cameraProviderFuture.get()
... // discuss later
}, executor)
Initialisation
25. •A new class, CameraSelector
•Picks the most suitable one based on option given.
Picking a camera
26. val cameraSelector = CameraSelector.Builder()
.requireLensFacing(lensFacing)
.build()
lensFacing:
CameraSelector.LENS_FACING_BACK
CameraSelector.LENS_FACING_FRONT
Picking a camera
28. val camera = cameraProvider.bindToLifecycle(…)
val info:CameraInfo = camera.cameraInfo
val control:CameraControl = camera.cameraControl
Camera controls
30. val degree:Int = cameraInfo.sensorRotationDegrees
val torch:LiveData<Int> = cameraInfo.torchState
val zoom:LiveData<ZoomState> = cameraInfo.zoomState
val flash:Boolean = cameraInfo.hasFlashUnit()
31. •Only one line required!
•Has been changed in Beta
How to bind to lifecycle
32. val camera = cameraProvider.bindToLifecycle
(
viewLifecycleOwner,
cameraSelector,
preview,
imageCapture,
imageAnalyzer
)
How to bind to lifecycle