Merge pull request #696 from thegobot/master

CAMERA_ERROR_EVICTED fix
camera2
Leo Ma 6 years ago committed by GitHub
commit 5e946797f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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();

@ -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]);
@ -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();
}
}
}

@ -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);

Loading…
Cancel
Save