Camera2 API:获取哪个相机处于活动状态

问题描述 投票:0回答:0

我正在使用 camera2 api 构建应用程序。现在,我已经创建了一个按钮来从一个摄像头切换到另一个摄像头。为此,我知道哪个相机处于活动状态......

我正在尝试使用以下代码来做到这一点

val 特征 = cameraManager.getCameraCharacteristics(cameraId) val facing = characteristics.get(CameraCharacteristics.LENS_FACING)

val cameraIds = cameraManager.cameraIdList

// Check for front-facing camera
if (facing == CameraCharacteristics.LENS_FACING_FRONT) {
    activeCameraID = cameraIds.firstOrNull {
        cameraManager.getCameraCharacteristics(it)
            .get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT
    } ?: throw RuntimeException("Unable to find the front camera")

    val toast = Toast.makeText(
        applicationContext,
        "Front camera is on", // Update the toast message
        Toast.LENGTH_SHORT
    )
    toast.show()
} else if (facing == CameraCharacteristics.LENS_FACING_BACK) {
    activeCameraID = cameraIds.firstOrNull {
        cameraManager.getCameraCharacteristics(it)
            .get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_BACK
    } ?: throw RuntimeException("Unable to find the back camera")

    val toast = Toast.makeText(
        applicationContext,
        "Back camera is on", // Update the toast message
        Toast.LENGTH_SHORT
    )
    toast.show()
}

出于某种原因,面值始终为“1”,即吐司始终显示“后置摄像头打开”。这意味着按钮可以从后置摄像头切换到前置摄像头,但不能反过来。我真的无法弄清楚这里的问题。感谢任何帮助。

android android-camera2
© www.soinside.com 2019 - 2024. All rights reserved.