This question already has an answer here:
Camera2 ImageReader freezes repeating capture request
                                
                                    (1个答案)
                                
                        
                                去年关闭。
            
                    
我的android camera2有问题。我从camera2Basic开始并进行了更改,以便预览和捕获可以拍摄手动照片。所以我将CameraDevice.TEMPLATE_PREVIEWCameraDevice.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了,我不知道为什么。

有人可以帮我弄这个吗 ?

编辑:

captureCallbackonCaptureFailed表示已拍摄图像,但由于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