ImageReader 使相机滞后 [英] ImageReader makes Camera lag

查看:34
本文介绍了ImageReader 使相机滞后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了一个问题,除了有一个用于显示相机输出的 SurfaceView 之外,我还使用了 ImageReader.我已经像这样添加了 SurfaceView 本身和 ImageReader 的表面(并添加了 ImageReader 侦听器以接收新图像上的事件):

I'm facing a problem where I am using a ImageReader in addition to have a SurfaceView which is used to show the output of the camera. I have added the SurfaceView itself and the surface for the ImageReader like this (and added the ImageReader listeners in order to receive events on new images):

preview.addTarget(_surfaces.get(1)); //ImageReader surface
preview.addTarget(_surfaces.get(0)); //SurfaceView of the layout

但是,如果我删除 ImageReader,应用程序工作正常(相机没有滞后).但是一旦添加了 ImageReader 表面,相机就会滞后很多.有没有人有任何想法可以让相机运行更流畅?ImageReader 是这样创建的:

However, if I remove the ImageReader the application is working fine (no lagging from the camera). But as soon as the ImageReader surface is added the camera i lagging a lot. Anyone have any ideas in order to makes the camera run more smooth? The ImageReader is created like this:

reader = ImageReader.newInstance(640, 480, ImageFormat.JPEG, 1);

我想延迟可能是由于图像必须在布局的 SurfaceView 和 ImageReader 本身上渲染两次(?)

I guess the lag could be due to that the image has to be rendered two times(?), both on the SurfaceView of the layout and the ImageReader itself

推荐答案

原来问题是 ImageReader 的 ImageFormat.将 ImageFormat.JPEG 更改为例如 ImageFormat.YUV_420_888 修复了滞后问题.

Turns out that the problem is the ImageFormat of the ImageReader. Changing the ImageFormat.JPEG to for example ImageFormat.YUV_420_888 fixed the lagging problem.

这篇关于ImageReader 使相机滞后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆