This question already has an answer here:
Camera2 ImageReader freezes repeating capture request
(1个答案)
去年关闭。
我的android camera2有问题。我从camera2Basic开始并进行了更改,以便预览和捕获可以拍摄手动照片。所以我将
我删除了预览回调,因为没有自动对焦功能就不需要它。所以这是我拍照片的方式:
在
但是它每次都能处理5张图片,然后再也不会在回调中进入
有人可以帮我弄这个吗 ?
编辑:
因此,这意味着只要
(1个答案)
去年关闭。
我的android camera2有问题。我从camera2Basic开始并进行了更改,以便预览和捕获可以拍摄手动照片。所以我将
CameraDevice.TEMPLATE_PREVIEW
和CameraDevice.TEMPLATE_STILL_CAPTURE
都更改为CameraDevice.TEMPLATE_MANUAL
。我删除了预览回调,因为没有自动对焦功能就不需要它。所以这是我拍照片的方式:
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);
在
unlockFocus
中: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();
}
};
关于java - Camera2 API仅适用于前5张图片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48524083/
10-10 18:07