Camera2Basic app前置摄像头拍摄照片

时间:2017-08-31 13:22:01

标签: android camera android-camera2

我尝试了Google的android-Camera2Basic示例应用。对于前置摄像头,我在Camera2BasicFragment中更改了一些代码。变化如下。

要切换到前置摄像头,我已在mCameraId = cameraId;方法中将mCameraId = "1";更改为setUpCameraOutputs(int width, int height)

并在setUpCameraOutputs(int width, int height)结束时加上条件,

if(mCameraId == null)
    mCameraId = cameraId;

此更改完美显示前置摄像头,但不选择照片。所以我换了

mCaptureSession.capture(mPreviewRequestBuilder.build(), mCaptureCallback,
                        mBackgroundHandler);

captureStillPicture();
lockFocus()中的

。现在前置摄像头拍摄照片,但它看起来颠倒了。

例如:

sample image

我现在不知道该怎么做。

我的要求是使用camera2 api在两台相机中捕捉照片。所以,如果我做错了什么,请纠正我。

在某些设备上,此应用只需点击一下即可拍摄多张照片。

3 个答案:

答案 0 :(得分:2)

刚从for移除setUpCameraOutputs循环 并删除了if(mCameraId == null) mCameraId = cameraId;

现在问题已修复。

谢谢

答案 1 :(得分:2)

删除以下条件并全局初始化默认摄像机,并删除for循环。

if(mCameraId == null) {
   mCameraId = cameraId;
}

答案 2 :(得分:0)

最简单的解决方案是

  

captureBuilder.set(CaptureRequest.JPEG_ORIENTATION,0);