diff --git a/.changeset/lucky-bags-cheat.md b/.changeset/lucky-bags-cheat.md new file mode 100644 index 000000000..f2daa0902 --- /dev/null +++ b/.changeset/lucky-bags-cheat.md @@ -0,0 +1,5 @@ +--- +"client-sdk-android": patch +--- + +Fix camera lookup to check physicalId diff --git a/livekit-android-camerax/src/main/java/livekit/org/webrtc/CameraXSession.kt b/livekit-android-camerax/src/main/java/livekit/org/webrtc/CameraXSession.kt index 22b379bc9..c378afd30 100644 --- a/livekit-android-camerax/src/main/java/livekit/org/webrtc/CameraXSession.kt +++ b/livekit-android-camerax/src/main/java/livekit/org/webrtc/CameraXSession.kt @@ -167,7 +167,12 @@ internal constructor( // Select camera by ID val cameraSelector = CameraSelector.Builder() - .addCameraFilter { cameraInfo -> cameraInfo.filter { Camera2CameraInfo.from(it).cameraId == cameraDevice.deviceId } } + .addCameraFilter { cameraInfo -> + cameraInfo.filter { + val cameraId = Camera2CameraInfo.from(it).cameraId + cameraId == cameraDevice.deviceId || cameraId == cameraDevice.physicalId + } + } .build() try { @@ -282,7 +287,10 @@ internal constructor( } private fun obtainCameraConfiguration() { - val camera = cameraProvider.availableCameraInfos.map { Camera2CameraInfo.from(it) }.first { it.cameraId == cameraDevice.deviceId } + val camera = cameraProvider.availableCameraInfos.map { Camera2CameraInfo.from(it) } + .first { + it.cameraId == cameraDevice.deviceId || it.cameraId == cameraDevice.physicalId + } cameraOrientation = camera.getCameraCharacteristic(CameraCharacteristics.SENSOR_ORIENTATION) ?: -1 isCameraFrontFacing = camera.getCameraCharacteristic(CameraCharacteristics.LENS_FACING) == CameraMetadata.LENS_FACING_FRONT