如何通过GLSurfaceView在Android中切换前/后相机?

时间:2015-07-13 10:44:30

标签: android android-camera glsurfaceview grafika

我已将issue发布到grafika,但现在似乎没有人维护该项目。

我想使用GLSurfaceView实现的CameraCaptureActivity切换前/后相机,如下所示:

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:我用谷歌搜索了,但是关于带有GLSurfaceView的Android相机的信息很少。

1 个答案:

答案 0 :(得分:0)

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