From 3ce4b85f2a3b56a0629cfa5d9d64577d9c297efe Mon Sep 17 00:00:00 2001 From: thegobot Date: Wed, 6 Mar 2019 16:05:26 +0800 Subject: [PATCH 1/2] Update SrsCameraView.java --- .../java/net/ossrs/yasea/SrsCameraView.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/library/src/main/java/net/ossrs/yasea/SrsCameraView.java b/library/src/main/java/net/ossrs/yasea/SrsCameraView.java index 22ac836..06871fe 100644 --- a/library/src/main/java/net/ossrs/yasea/SrsCameraView.java +++ b/library/src/main/java/net/ossrs/yasea/SrsCameraView.java @@ -143,10 +143,15 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render this.mCamera.setPreviewCallback(previewCallback); } - public int[] setPreviewResolution(int width, int height) { - //getHolder().setFixedSize(width, height); - - mCamera = openCamera(); + public int[] setPreviewResolution(int width, int height) { + + if (mCamera == null) { + mCamera = openCamera(); + if (mCamera == null) { + return new int[] { 0, 0}; + } + } + mPreviewWidth = width; mPreviewHeight = height; Camera.Size rs = adaptPreviewResolution(mCamera.new Size(width, height)); @@ -367,7 +372,13 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render mCamId = 0; } } - camera = Camera.open(mCamId); + + try { + camera = Camera.open(mCamId); + }catch (Exception e){ + e.printStackTrace(); + } + return camera; } From 826a8226e1029d1e9c21432cd9ecffb945d26401 Mon Sep 17 00:00:00 2001 From: thegobot Date: Wed, 6 Mar 2019 16:15:48 +0800 Subject: [PATCH 2/2] Update SrsEncoder.java --- .../src/main/java/net/ossrs/yasea/SrsEncoder.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/net/ossrs/yasea/SrsEncoder.java b/library/src/main/java/net/ossrs/yasea/SrsEncoder.java index f9b5511..8de0eb1 100644 --- a/library/src/main/java/net/ossrs/yasea/SrsEncoder.java +++ b/library/src/main/java/net/ossrs/yasea/SrsEncoder.java @@ -187,14 +187,22 @@ public class SrsEncoder { if (aencoder != null) { Log.i(TAG, "stop aencoder"); - aencoder.stop(); + try { + aencoder.stop(); + }catch (IllegalStateException e){ + e.printStackTrace(); + } aencoder.release(); aencoder = null; } if (vencoder != null) { Log.i(TAG, "stop vencoder"); - vencoder.stop(); + try { + vencoder.stop(); + }catch (IllegalStateException e){ + e.printStackTrace(); + } vencoder.release(); vencoder = null; }