当我按下 capture onImageAvailable 时,图像被保存了 10 次

Images are getting saved 10 times when I press capture once camera 2 onImageAvailable

private final ImageReader.OnImageAvailableListener mOnImageAvailableListener
            = new ImageReader.OnImageAvailableListener() {

        @Override
        public void onImageAvailable(ImageReader reader) {
            Image img = reader.acquireNextImage();
            ByteBuffer buffer = img.getPlanes()[0].getBuffer();
            byte[] bytes = new byte[buffer.remaining()];

            buffer.get(bytes);
            img.close();

            mBackgroundHandler.post(new ImageSaver(bytes, mFile));
        }




    };

当我按一次捕获时,图像被保存了 10 次,我卡在这里了

 case STATE_WAITING_LOCK: {
                        Integer afState = result.get(CaptureResult.CONTROL_AF_STATE);
                        if (afState == null) {
                            mState = STATE_PICTURE_TAKEN;
                            captureStillPicture();
                        }

注意 mState = STATE_PICTURE_TAKEN ,这解决了我的问题