Merge pull request #701 from thegobot/master

camera callbacks
camera2
Leo Ma 6 years ago committed by GitHub
commit d5386ed8b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -69,8 +69,9 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
btnSwitchEncoder = (Button) findViewById(R.id.swEnc);
btnPause = (Button) findViewById(R.id.pause);
btnPause.setEnabled(false);
mCameraView = (SrsCameraView) findViewById(R.id.glsurfaceview_camera);
mPublisher = new SrsPublisher((SrsCameraView) findViewById(R.id.glsurfaceview_camera));
mPublisher = new SrsPublisher(mCameraView);
mPublisher.setEncodeHandler(new SrsEncodeHandler(this));
mPublisher.setRtmpHandler(new RtmpHandler(this));
mPublisher.setRecordHandler(new SrsRecordHandler(this));
@ -79,6 +80,15 @@ public class MainActivity extends AppCompatActivity implements RtmpHandler.RtmpL
mPublisher.setVideoHDMode();
mPublisher.startCamera();
mCameraView.setCameraCallbacksHandler(new SrsCameraView.CameraCallbacksHandler(){
@Override
public void onCameraParameters(Camera.Parameters params) {
//params.setFocusMode("custom-focus");
//params.setWhiteBalance("custom-balance");
//etc...
}
});
btnPublish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

@ -54,6 +54,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
private final Object writeLock = new Object();
private ConcurrentLinkedQueue<IntBuffer> mGLIntBufferCache = new ConcurrentLinkedQueue<>();
private PreviewCallback mPrevCb;
private CameraCallbacksHandler cameraCallbacksHandler = new CameraCallbacksHandler();
public SrsCameraView(Context context) {
this(context, null);
@ -349,6 +350,7 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
}
}
cameraCallbacksHandler.onCameraParameters(params);
mCamera.setParameters(params);
mCamera.setDisplayOrientation(mPreviewRotation);
@ -482,4 +484,20 @@ public class SrsCameraView extends GLSurfaceView implements GLSurfaceView.Render
void onGetRgbaFrame(byte[] data, int width, int height);
}
static public class CameraCallbacksHandler implements CameraCallbacks{
@Override
public void onCameraParameters(Camera.Parameters params) {
}
}
public interface CameraCallbacks {
void onCameraParameters(Camera.Parameters params);
}
public void setCameraCallbacksHandler(CameraCallbacksHandler cameraCallbacksHandler) {
this.cameraCallbacksHandler = cameraCallbacksHandler;
}
}

Loading…
Cancel
Save