![](/img/trans.png)
[英]CameraX Image Analysis (with OUTPUT_IMAGE_FORMAT_RGBA_8888) : maxImages (4) has already been acquired, call #close before acquiring more
[英]ImageReader maxImages (2) has already been acquired in background task
我正在使用ImageReader和Handler來獲取背景圖像。 但我得到:
致命異常:java.lang.IllegalStateException已獲取maxImages(2),在獲取更多之前調用#close。
private final ImageReader.OnImageAvailableListener mOnImageAvailableListener
= new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
mBackgroundHandler.post(new ImageSaver(reader.acquireNextImage(), CameraFragment.this));
}
};
我的后台任務是:
private static class ImageSaver implements Runnable {
/**
* The JPEG image
*/
private final Image mImage;
BaseCameraFragment cameraFragmentContext;
public ImageSaver(Image image, BaseCameraFragment cameraFragmentContext) {
mImage = image;
this.cameraFragmentContext = cameraFragmentContext;
}
@Override
public void run() {
ByteBuffer buffer = mImage.getPlanes()[0].getBuffer();
cameraFragmentContext.photoReady(new ByteBufferInputStream(buffer));
mImage.close();
}
}
我該如何解決這個問題?
`
private ImageReader.OnImageAvailableListener imageAvailableListener = new ImageReader.OnImageAvailableListener()
{
@Override
public void onImageAvailable(ImageReader reader) {
Image img = mReader.acquireLatestImage();
//mReader.close();
img.close();
}
};
`
只需使用img.close();
可以解決它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.