我遇到的问题是我使用的是ImageReader,还有一个用于显示相机输出的SurfaceView。我已经像这样添加了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本身上呈现两次(?)
答案 0 :(得分:7)
原来问题是ImageReader的ImageFormat。将barTintColor
更改为例如nil
可解决滞后问题。