Fix camera face swith bug

Signed-off-by: Leo Ma <begeekmyfriend@gmail.com>
camera2
Leo Ma 9 years ago
parent 0c24613585
commit 3b7d80db76

@ -47,7 +47,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
private Camera mCamera; private Camera mCamera;
private ByteBuffer mGlPreviewBuffer; private ByteBuffer mGlPreviewBuffer;
private int mCamId = Camera.CameraInfo.CAMERA_FACING_FRONT; private int mCamId = -1;
private int mPreviewRotation = 90; private int mPreviewRotation = 90;
private Thread worker; private Thread worker;
@ -193,7 +193,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
if (mCamera != null) { if (mCamera != null) {
return false; return false;
} }
if (mCamId > (Camera.getNumberOfCameras() - 1) || mCamId < 0) { if (mCamId > (Camera.getNumberOfCameras() - 1)) {
return false; return false;
} }
@ -220,15 +220,19 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
}); });
worker.start(); worker.start();
Camera.CameraInfo info = new Camera.CameraInfo(); if (mCamId < 0) {
int numCameras = Camera.getNumberOfCameras(); Camera.CameraInfo info = new Camera.CameraInfo();
for (int i = 0; i < numCameras; i++) { int numCameras = Camera.getNumberOfCameras();
Camera.getCameraInfo(i, info); for (int i = 0; i < numCameras; i++) {
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { Camera.getCameraInfo(i, info);
mCamera = Camera.open(i); if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
mCamId = i; mCamera = Camera.open(i);
break; mCamId = i;
break;
}
} }
} else {
mCamera = Camera.open(mCamId);
} }
if (mCamera == null) { if (mCamera == null) {
mCamera = Camera.open(); mCamera = Camera.open();

Loading…
Cancel
Save