我尝试了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()
中的。现在前置摄像头拍摄照片,但它看起来颠倒了。
例如:
我现在不知道该怎么做。
我的要求是使用camera2 api在两台相机中捕捉照片。所以,如果我做错了什么,请纠正我。
在某些设备上,此应用只需点击一下即可拍摄多张照片。
答案 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);