From 3b7d80db76e38a562a1fa3523ab85dc40ef9dc22 Mon Sep 17 00:00:00 2001 From: Leo Ma Date: Fri, 4 Nov 2016 17:40:39 +0800 Subject: [PATCH] Fix camera face swith bug Signed-off-by: Leo Ma --- .../java/net/ossrs/yasea/SrsCameraView.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/net/ossrs/yasea/SrsCameraView.java b/app/src/main/java/net/ossrs/yasea/SrsCameraView.java index a6fa92a..d0b3788 100644 --- a/app/src/main/java/net/ossrs/yasea/SrsCameraView.java +++ b/app/src/main/java/net/ossrs/yasea/SrsCameraView.java @@ -47,7 +47,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render private Camera mCamera; private ByteBuffer mGlPreviewBuffer; - private int mCamId = Camera.CameraInfo.CAMERA_FACING_FRONT; + private int mCamId = -1; private int mPreviewRotation = 90; private Thread worker; @@ -193,7 +193,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render if (mCamera != null) { return false; } - if (mCamId > (Camera.getNumberOfCameras() - 1) || mCamId < 0) { + if (mCamId > (Camera.getNumberOfCameras() - 1)) { return false; } @@ -220,15 +220,19 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render }); worker.start(); - Camera.CameraInfo info = new Camera.CameraInfo(); - int numCameras = Camera.getNumberOfCameras(); - for (int i = 0; i < numCameras; i++) { - Camera.getCameraInfo(i, info); - if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { - mCamera = Camera.open(i); - mCamId = i; - break; + if (mCamId < 0) { + Camera.CameraInfo info = new Camera.CameraInfo(); + int numCameras = Camera.getNumberOfCameras(); + for (int i = 0; i < numCameras; i++) { + Camera.getCameraInfo(i, info); + if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { + mCamera = Camera.open(i); + mCamId = i; + break; + } } + } else { + mCamera = Camera.open(mCamId); } if (mCamera == null) { mCamera = Camera.open();