我正在尝试使用服务截取我的 Android 设备(Samsung Galaxy Tab S5e)的屏幕截图。我正在使用这里的代码。
在链接的代码中,ImageReader.newInstance(mWidth, mHeight, PixelFormat.RGBA_8888, 2);
使用了。注意PixelFormat.RGBA_8888
. 现在,这将不允许我编译我的项目,我收到了错误:Error: Must be one of: ImageFormat.UNKNOWN, ImageFormat.RGB_565... etc
.
所以我尝试更改PixelFormat.RGBA_8888
为ImageFormat.JPEG
并编译。但是,我的应用程序现在崩溃并显示以下消息:
RGBA 覆盖 BLOB 格式缓冲区应具有高度 == 宽度
我尝试更改PixelFormat.RGBA_8888
为0x4
,0x1
和ImageFormat.RGB_565
其他一些。这样做通常会导致消息异常:
生产者输出缓冲区格式 0x1 与 ImageReader 配置的缓冲区格式 0x4 不匹配。
这在某种程度上与中描述的格式相关联onImageAvailable(ImageReader reader)
。
我看过以下 SO 帖子,似乎正确的格式是特定于设备的,但我已经尝试了所有这些,错误是上述之一。
我完全不知所措(而且我是 Java/Android 新手),所以真的可以使用一些帮助。