Android Camera2 API MediaRecoder 如何捕获图像(不是流也不是文件)

标签 android image api video-capture camera2

我正在尝试为android 6.0 平台开发一个行车记录仪应用程序。此应用程序可以录制从相机捕获的视频并保存为 mp4 文件。 在保存过程中,我希望应用程序也能用图像一张一张地捕捉图像我可以用 opencv 做一些图像分析,比如找到车道边缘或测试我的车前面是否有东西,等等。

我已经研究了示例应用程序 Camera2Video,现在我可以让我的应用程序保存从相机捕获的视频 mp4 文件。

我的下一步是让我的应用程序知道从相机捕获的每张图像何时准备就绪,或者何时 MediaRecorder 获得单张图像,以便我可以拍摄该图像以用于后续过程。

我的问题是,如何配置监听器或任何可以让我的应用知道从相机捕获的每张图像何时准备就绪的东西?

最佳答案

ImageReader 添加一个额外的输出表面(如果您想要基于 GPU 的处理,则来自 SurfaceTexture,或者来自用于基于 RenderScript 的处理的分配)在您的捕获 session 创建中。然后对于您的记录请求,将 ImageReader 表面也作为目标包括在内。

您可以制作此流的最大分辨率取决于相机设备的功能; LEGACY 级别的设备无法真正做到这一点,但在 RECORD、RECORD 和 PREVIEW 分辨率下使用 3 个输出就可以了。

然后为 ImageReader 创建一个监听器并使用 onImageAvailable处理帧的回调。

关于Android Camera2 API MediaRecoder 如何捕获图像(不是流也不是文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35056922/

相关文章:

java - 两次启动另一个 Activity 时,线程不更新 textview

android - 使用 Android Realm 在线程之间写入和读取

python - 如何对某个目录下的多张图片进行K均值聚类并保存到另一个目录下? (本地)

javascript - 将图像文件放在 node.js 中的什么位置?

javascript - 在 Node 和 Express 制作的 REST API 上管理分页和搜索/过滤器的正确方法

android - 将字符串从子选项卡 Activity 传递到父选项卡

android - 完成主要 Activity 导致 Android 应用程序重新启动

python - pygame矩形碰撞小于图像

javascript - 用于 typescript 自定义小部件的 JQuery API 文档生成器?

python - 使用Python将JSON对象插入MySQL