Android ImageReader 获取最新图像时偶尔为空。

7
我有一个应用程序设置,能够捕获屏幕内容。然而,偶尔会从aquireLatestImage返回null值。文档说如果没有可用的图像数据,它将返回“null”。
我很想知道是什么原因导致没有可用的图像数据?
编辑:据我所知,这在LG设备上最频繁发生…
编辑2:我遇到的情况是先前返回有效图像值后返回空值。并且它继续返回空值。对于非LG设备,偶尔会返回null。对于LG设备,似乎一旦返回一个null,其余的值都将为空。
编辑3:包括一些代码
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);

Display display = wm.getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics );

ImageReader imageReader = ImageReader.newInstance(displayMetrics.widthPixels, displayMetrics.heightPixels, PixelFormat.RGBA_8888, 2);

virtualDisplay = mediaProjection.createVirtualDisplay("NetCountableVirtualDisplay",
        displayMetrics.widthPixels,
        displayMetrics.heightPixels,
        displayMetrics.densityDpi,
        DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY | DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
        imageReader.getSurface(),
        null,
        null);

你能贴出你实例化 ImageReader 对象的代码吗?传递给 newInstance 方法的参数,如 maxImages,可能很重要。 - pleft
@pleft 刚刚添加了,请告诉我。 - CamHart
1个回答

0
文档中说:“如果没有可用的图像,则返回null”。这意味着您在它能够获取新图像之前就调用了它,因此它不会浪费资源向您发送两次相同的图像,而是只返回null。

我遇到的问题是在先前有值之后返回了空值。而且据我所知,它会无限期地返回空值。 - CamHart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接