在Android 14 Beta中,使用CameraX TextureView可能会导致预览画面出现异常和卡顿等问题。解决方法是使用SurfaceView来替代TextureView进行预览。
代码示例:
// 创建 CameraX 实例
val cameraProviderFuture = ProcessCameraProvider.getInstance(context)
// 设置预览视图
val preview = Preview.Builder().build()
val surfaceProvider = SurfaceView(context).holder.surface
preview.setSurfaceProvider(surfaceProvider)
// 绑定预览和 CameraX 实例
val cameraSelector = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build()
cameraProviderFuture.addListener({
val cameraProvider = cameraProviderFuture.get()
val camera = cameraProvider.bindToLifecycle(this, cameraSelector, preview)
}, ContextCompat.getMainExecutor(context))