android - ImageReader 使相机滞后

标签 android android-camera android-camera2

我遇到了一个问题,我在使用 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 本身上

最佳答案

原来问题出在ImageReader的ImageFormat上。将 ImageFormat.JPEG 更改为例如 ImageFormat.YUV_420_888 解决了滞后问题。

关于android - ImageReader 使相机滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34555545/

相关文章:

每次屏幕方向改变时,Android 选项菜单都会关闭

javascript - Phonegap Camera API - 无法读取未定义的属性 'DATA_URL'

android - 在相机和图库之间进行选择以进行图像选择

android - Android中的图片编辑器

android - 无法使用runtime.exec重新启动设备

android - 使用 camera2 API 检查前置闪光灯是否可用

Android Camera2 RAW 流媒体

android camera2 createCaptureSession 已弃用

android - Eclipse 未找到包 android.view

android - 通过 API "rolls"或在强光下损坏的 Galaxy S3 视频录制