如何在 Android CameraX (1.0.0-alpha07) 上实例化 CameraControl
How to instantiate CameraControl on Android CameraX (1.0.0-alpha07)
当使用 camerax_version = "1.0.0-alpha06" 时,我可以使用实例化相机控制器:
CameraControl cameraControl = CameraX.getCameraControl(CameraX.LensFacing.BACK);
但是对于 camerax_version = "1.0.0-alpha07",函数 CameraX.getCameraControl
不再被识别。
如何实例化 CameraControl?
版本 1.0.0-alpha07
对 CameraX 的初始化方式进行了大量更改。为了得到一个CameraControl
对象,你必须先得到一个Camera
对象。 Camera
从 ProcessCameraProvider.bindToLifecycle()
方法返回。基本上你需要做的是:
(如果您已经使用新的 API 配置了您的项目,请跳至最后一点)
- 在您的
Application
class 中实施 CameraXConfig.Provider
并提供默认 Camera2Config
值:
class MyApp : Application(), CameraXConfig.Provider {
override fun getCameraXConfig(): CameraXConfig = Camera2Config.defaultConfig(this)
}
- 获取
ProcessCameraProvider
的实例:
val cameraProviderFuture = ProcessCameraProvider.getInstance(context)
cameraProviderFuture.addListener(Runnable {
cameraProvider = cameraProviderFuture.get()
...
}, ContextCompat.getMainExecutor(context))
3。使用 ProcessCameraProvider
实例将 CameraX UseCase
s 和 CameraSelector
绑定到生命周期并获取 Camera
和 CameraControl
对象:
// CameraSelector is also a new thing
val cameraSelector = CameraSelector.Builder().apply {
requireLensFacing(lensFacing)
}.build()
val preview = ...
val imageCapture = ...
val imageAnalysis = ...
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageCapture, imageAnalysis)
val cameraControl = camera.cameraControl
检查 Camera-Core Version 1.0.0-alpha07 API changes 是否有任何其他参考资料。
当使用 camerax_version = "1.0.0-alpha06" 时,我可以使用实例化相机控制器:
CameraControl cameraControl = CameraX.getCameraControl(CameraX.LensFacing.BACK);
但是对于 camerax_version = "1.0.0-alpha07",函数 CameraX.getCameraControl
不再被识别。
如何实例化 CameraControl?
版本 1.0.0-alpha07
对 CameraX 的初始化方式进行了大量更改。为了得到一个CameraControl
对象,你必须先得到一个Camera
对象。 Camera
从 ProcessCameraProvider.bindToLifecycle()
方法返回。基本上你需要做的是:
(如果您已经使用新的 API 配置了您的项目,请跳至最后一点)
- 在您的
Application
class 中实施CameraXConfig.Provider
并提供默认Camera2Config
值:
class MyApp : Application(), CameraXConfig.Provider {
override fun getCameraXConfig(): CameraXConfig = Camera2Config.defaultConfig(this)
}
- 获取
ProcessCameraProvider
的实例:
val cameraProviderFuture = ProcessCameraProvider.getInstance(context)
cameraProviderFuture.addListener(Runnable {
cameraProvider = cameraProviderFuture.get()
...
}, ContextCompat.getMainExecutor(context))
3。使用 ProcessCameraProvider
实例将 CameraX UseCase
s 和 CameraSelector
绑定到生命周期并获取 Camera
和 CameraControl
对象:
// CameraSelector is also a new thing
val cameraSelector = CameraSelector.Builder().apply {
requireLensFacing(lensFacing)
}.build()
val preview = ...
val imageCapture = ...
val imageAnalysis = ...
val camera = cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageCapture, imageAnalysis)
val cameraControl = camera.cameraControl
检查 Camera-Core Version 1.0.0-alpha07 API changes 是否有任何其他参考资料。