如何通过 GLSurfaceView 在 Android 中切换 front/back 相机?

How to switch front/back camera in Android by GLSurfaceView?

发了一个issue to grafika,不过现在好像没人维护了

我想用GLSurfaceView实现的CameraCaptureActivity切换front/back摄像头,如下:

public boolean switchCamera() {
    releaseCamera();
    mGLView.onPause();
    if (mReqCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) {
        mReqCameraId = Camera.CameraInfo.CAMERA_FACING_FRONT;
    } else {
        mReqCameraId = Camera.CameraInfo.CAMERA_FACING_BACK;
    }
    openCamera(mReqCameraId);

    mGLView.onResume();
    mGLView.queueEvent(new Runnable() {
        @Override
        public void run() {
            mRenderer.setCameraPreviewSize(mCameraPreviewWidth, mCameraPreviewHeight);
        }
    });
    return true;
}

可以用,但是我回到第一次启动的相机时,FOV已经改变了。框架好像被剪掉了

所以切换前后摄像头时我错过了哪里?

谢谢。

PS:我已经用谷歌搜索了,但是关于 Android 带有 GLSurfaceView 的相机的信息很少。

作为@fadden 的评论,我删除了 setRecordingHint(true),它工作正常。