我有一个应用程序设置,能够捕获屏幕内容。但是,有时我会收到从aquireLatestImage返回的null
值。文档中说,如果没有可用的图像数据,它将返回"null“。
我很想知道为什么没有图像数据可用?
编辑:据我所知,这种情况最常发生在LG设备上…
编辑2:我遇到的情况是在之前返回了有效的图像值之后,返回了一个空值。并且它继续返回空值。对于非LG设备,偶尔会返回空值。对于LG设备,似乎一旦它返回一个null,其余的都将是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);
发布于 2017-11-08 15:32:39
文档说“如果没有可用的新镜像,则返回null”,这意味着您在它能够获取新镜像之前调用它,因此,它只返回null,而不是浪费资源向您发送相同的镜像两次。
https://stackoverflow.com/questions/47047432
复制相似问题