我面临一个问题,除了有一个用于显示相机输出的 SurfaceView 之外,我还使用 ImageReader。我已经像这样添加了 SurfaceView 本身和 ImageReader 的表面(并添加了 ImageReader 监听器以接收新图像上的事件):
preview.addTarget(_surfaces.get(1)); //ImageReader surface
preview.addTarget(_surfaces.get(0)); //SurfaceView of the layout
但是,如果我删除 ImageReader 应用程序工作正常(没有从相机滞后)。但是一旦添加了 ImageReader 表面,相机就会滞后很多。有没有人有任何想法可以使相机运行更流畅? ImageReader 是这样创建的:
reader = ImageReader.newInstance(640, 480, ImageFormat.JPEG, 1);
我想延迟可能是由于图像必须在布局的 SurfaceView 和 ImageReader 本身上渲染两次(?)
最佳答案
原来问题出在 ImageReader 的 ImageFormat 上。将 ImageFormat.JPEG
更改为例如 ImageFormat.YUV_420_888
修复了滞后问题。
关于android - ImageReader 使相机滞后,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34555545/