diff --git a/sdk/android/api/org/webrtc/Camera1Capturer.java b/sdk/android/api/org/webrtc/Camera1Capturer.java index a427c607f7..de172aa1d7 100644 --- a/sdk/android/api/org/webrtc/Camera1Capturer.java +++ b/sdk/android/api/org/webrtc/Camera1Capturer.java @@ -28,7 +28,6 @@ public class Camera1Capturer extends CameraCapturer { SurfaceTextureHelper surfaceTextureHelper, String cameraName, int width, int height, int framerate) { Camera1Session.create(createSessionCallback, events, captureToTexture, applicationContext, - surfaceTextureHelper, Camera1Enumerator.getCameraIndex(cameraName), width, height, - framerate); + surfaceTextureHelper, cameraName, width, height, framerate); } } diff --git a/sdk/android/src/java/org/webrtc/Camera1Session.java b/sdk/android/src/java/org/webrtc/Camera1Session.java index 6daaa27f1d..7b4f6cab4f 100644 --- a/sdk/android/src/java/org/webrtc/Camera1Session.java +++ b/sdk/android/src/java/org/webrtc/Camera1Session.java @@ -52,12 +52,20 @@ class Camera1Session implements CameraSession { @SuppressWarnings("ByteBufferBackingArray") public static void create(final CreateSessionCallback callback, final Events events, final boolean captureToTexture, final Context applicationContext, - final SurfaceTextureHelper surfaceTextureHelper, final int cameraId, final int width, - final int height, final int framerate) { + final SurfaceTextureHelper surfaceTextureHelper, final String cameraName, + final int width, final int height, final int framerate) { final long constructionTimeNs = System.nanoTime(); - Logging.d(TAG, "Open camera " + cameraId); + Logging.d(TAG, "Open camera " + cameraName); events.onCameraOpening(); + final int cameraId; + try { + cameraId = Camera1Enumerator.getCameraIndex(cameraName); + } catch (IllegalArgumentException e) { + callback.onFailure(FailureType.ERROR, e.getMessage()); + return; + } + final android.hardware.Camera camera; try { camera = android.hardware.Camera.open(cameraId);