这个问题可能是由于在onImageAvailable方法中多次调用了ImageReader.acquireNextImage()方法导致的。解决方法是在每次调用ImageReader.acquireNextImage()之后立即调用image.close()方法以释放资源。示例代码如下:
private final ImageReader.OnImageAvailableListener mOnImageAvailableListener = new ImageReader.OnImageAvailableListener() { @Override public void onImageAvailable(ImageReader reader) { Image image = reader.acquireNextImage(); // 处理图像... image.close(); // 释放资源 } };
你可能还需要检查是否在其他地方意外地多次调用了capture()方法或其他方法,这也可能导致同一个图像被保存多次。