Java Camera2 API仅适用于前5张图片
我对android camera2有问题。我从开始并更改了它,以便预览和捕获手动拍摄照片。因此,我将Java Camera2 API仅适用于前5张图片,java,android,android-camera2,Java,Android,Android Camera2,我对android camera2有问题。我从开始并更改了它,以便预览和捕获手动拍摄照片。因此,我将CameraDevice.TEMPLATE\u预览和CameraDevice.TEMPLATE\u捕获都更改为CameraDevice.TEMPLATE\u手册 我删除了预览回调,因为没有自动对焦就不需要它。下面是我如何拍照的: final CameraCaptureSession.CaptureCallback captureCallback = new Came
CameraDevice.TEMPLATE\u预览
和CameraDevice.TEMPLATE\u捕获
都更改为CameraDevice.TEMPLATE\u手册
我删除了预览回调,因为没有自动对焦就不需要它。下面是我如何拍照的:
final CameraCaptureSession.CaptureCallback captureCallback
= new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session,
@NonNull CaptureRequest request,
@NonNull TotalCaptureResult result) {
showToast("Saved");
unlockFocus();
}
};
mCaptureSession.stopRepeating();
mCaptureSession.abortCaptures();
mCaptureSession.capture(mCaptureRequest, captureCallback, null);
在中解锁焦点
:
mCaptureSession.capture(mPreviewRequest, null, mBackgroundHandler);
mCaptureSession.setRepeatingRequest(mPreviewRequest, mPreviewCaptureCallback,
mBackgroundHandler);
但是它每次可以处理5张图片,然后它就再也不会进入回调中的onCaptureCompleted
,我不知道为什么
有人能帮我吗
编辑:
captureCallback
的onCaptureFailed
表示图像已拍摄,但拍摄失败,原因是reason==0
(框架中出现错误,但我不知道在哪里,以及它是如何在5次首次拍摄时工作的),拍摄照片时序列id总是增加2
这意味着每当
seqid>10
时都会发生错误,有链接吗?正如@Alex Cohn所说,我只是忘记关闭ImageReader上的图像,正在其他地方搜索问题
这是校正后的ImageReader.OnImageAvailableListener
,没有对输出图像进行处理,因为它只是一个测试
private final ImageReader.OnImageAvailableListener mOnImageAvailableListener
= new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
Image image = reader.acquireNextImage();
image.close();
}
};
你使用ImageReader吗?你忘了吗?是的,我刚刚解决了这个问题,太愚蠢了!无论如何,谢谢你,当我结束我的问题时,你回答了我的问题^^是的,你一开始怎么会想到这个:-)我花了这么多时间试图调试相机会话和拍摄过程,甚至都没有想到这一点,突然我发现它是在拍摄之后,最终找到了它,但哇,我花了一天时间^^