我正在使用 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”,即吐司始终显示“后置摄像头打开”。这意味着按钮可以从后置摄像头切换到前置摄像头,但不能反过来。我真的无法弄清楚这里的问题。感谢任何帮助。