You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android CameraX如何获取相机设备完成开启后的回调

CameraX相机开启后参数设置的回调方案

CameraX提供了官方封装的相机状态监听能力,不需要直接对接Camera2底层的CameraDevice.StateCallback即可满足「相机开启后设置白平衡、曝光参数」的需求,具体实现如下:


实现步骤

  • 绑定相机生命周期时接收返回的Camera实例
// Kotlin示例代码
val camera = processCameraProvider.bindToLifecycle(
    this as LifecycleOwner,
    cameraSelector,
    preview,
    imageCapture
)
  • 给Camera实例的cameraState添加观察者,监听相机开启完成状态
camera.cameraInfo.cameraState.observe(this) { cameraState ->
    when (cameraState.type) {
        // 该状态等价于Camera2中CameraDevice.StateCallback的onOpened回调,相机已完全启动
        CameraState.Type.OPENED -> {
            val cameraControl = camera.cameraControl
            // 此处可安全设置曝光、白平衡等参数
            // 示例:设置曝光补偿
            cameraControl.setExposureCompensationIndex(1)
            // 示例:设置固定白平衡模式
            cameraControl.setWhiteBalanceMode(WhiteBalanceMode.WB_MODE_DAYLIGHT)
        }
        // 可选:监听错误状态做异常处理
        CameraState.Type.ERROR -> {
            val error = cameraState.error
            // 处理相机启动异常逻辑
        }
        else -> {}
    }
}

可选扩展

如果你确实需要直接使用Camera2原生的CameraDevice.StateCallback,可以通过Camera2Interop扩展实现,不过普通业务场景使用上述官方封装的状态监听即可覆盖需求,无需对接底层API。


内容的提问来源于stack exchange,提问作者Murodjon Abdukholikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:57:01