From 6e00e91d675950094e2036b80f61998a3ea03e6f Mon Sep 17 00:00:00 2001 From: thegobot Date: Tue, 19 Mar 2019 15:07:50 +0800 Subject: [PATCH 1/4] Update SrsPublisher.java --- library/src/main/java/net/ossrs/yasea/SrsPublisher.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/library/src/main/java/net/ossrs/yasea/SrsPublisher.java b/library/src/main/java/net/ossrs/yasea/SrsPublisher.java index a8664de..b7ae31b 100644 --- a/library/src/main/java/net/ossrs/yasea/SrsPublisher.java +++ b/library/src/main/java/net/ossrs/yasea/SrsPublisher.java @@ -245,6 +245,10 @@ public class SrsPublisher { public int getCameraId() { return mCameraView.getCameraId(); } + + public Camera getCamera() { + return mCameraView.getCamera(); + } public void setPreviewResolution(int width, int height) { int resolution[] = mCameraView.setPreviewResolution(width, height); From 707985f7d1e913d47e30c78e05631f7f6fbc6081 Mon Sep 17 00:00:00 2001 From: thegobot Date: Tue, 19 Mar 2019 16:14:59 +0800 Subject: [PATCH 2/4] Update SrsCameraView.java --- .../java/net/ossrs/yasea/SrsCameraView.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/net/ossrs/yasea/SrsCameraView.java b/library/src/main/java/net/ossrs/yasea/SrsCameraView.java index 301dd0a..0780dc1 100644 --- a/library/src/main/java/net/ossrs/yasea/SrsCameraView.java +++ b/library/src/main/java/net/ossrs/yasea/SrsCameraView.java @@ -347,7 +347,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render } } - private Camera openCamera() { + protected Camera openCamera() { Camera camera; if (mCamId < 0) { Camera.CameraInfo info = new Camera.CameraInfo(); @@ -374,6 +374,15 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render try { camera = Camera.open(mCamId); + + camera.setErrorCallback(new Camera.ErrorCallback(){ + @Override + public void onError(int error, Camera camera) { + //may be Camera.CAMERA_ERROR_EVICTED - Camera was disconnected due to use by higher priority user + stopCamera(); + } + }); + }catch (Exception e){ e.printStackTrace(); } @@ -431,9 +440,13 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render public void stopTorch() { if (mCamera != null) { - Camera.Parameters params = mCamera.getParameters(); - params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); - mCamera.setParameters(params); + try { + Camera.Parameters params = mCamera.getParameters(); + params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); + mCamera.setParameters(params); + }catch (Exception e){ + e.printStackTrace(); + } } } From 9ca202c61a003c21443952647334d0e243504aaa Mon Sep 17 00:00:00 2001 From: thegobot Date: Tue, 19 Mar 2019 16:20:41 +0800 Subject: [PATCH 3/4] Update MainActivity.java --- app/src/main/java/net/ossrs/yasea/demo/MainActivity.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/net/ossrs/yasea/demo/MainActivity.java b/app/src/main/java/net/ossrs/yasea/demo/MainActivity.java index af55d66..c326a84 100644 --- a/app/src/main/java/net/ossrs/yasea/demo/MainActivity.java +++ b/app/src/main/java/net/ossrs/yasea/demo/MainActivity.java @@ -232,6 +232,15 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL return super.onOptionsItemSelected(item); } + @Override + protected void onStart() { + super.onStart(); + if(mPublisher.getCamera() == null){ + //if the camera was busy and available again + mPublisher.startCamera(); + } + } + @Override protected void onResume() { super.onResume(); From 6d3e549f2c1065a74e9dd49c87575f8652f55ac3 Mon Sep 17 00:00:00 2001 From: thegobot Date: Sat, 23 Mar 2019 10:19:13 +0800 Subject: [PATCH 4/4] Update SrsCameraView.java --- library/src/main/java/net/ossrs/yasea/SrsCameraView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/net/ossrs/yasea/SrsCameraView.java b/library/src/main/java/net/ossrs/yasea/SrsCameraView.java index 0780dc1..fc4dd97 100644 --- a/library/src/main/java/net/ossrs/yasea/SrsCameraView.java +++ b/library/src/main/java/net/ossrs/yasea/SrsCameraView.java @@ -288,7 +288,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render } Camera.Parameters params = mCamera.getParameters(); - params.setPictureSize(mPreviewWidth, mPreviewHeight); + //params.setPictureSize(mPreviewWidth, mPreviewHeight); params.setPreviewSize(mPreviewWidth, mPreviewHeight); int[] range = adaptFpsRange(SrsEncoder.VFPS, params.getSupportedPreviewFpsRange()); params.setPreviewFpsRange(range[0], range[1]);