1

我正在尝试为 android 6.0 平台开发行车记录仪应用程序。这个应用程序可以记录从相机捕获的视频并保存为 mp4 文件。在保存过程中,我希望应用程序也可以将图像与图像一一捕获我可以使用opencv进行一些图像分析,例如查找车道边缘或测试我的车前是否有东西等等。

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

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

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

4

1 回答 1

1

在您的捕获会话创建中,从ImageReader(或者从 SurfaceTexture,如果您想要基于 GPU 的处理,或者从基于 RenderScript 的处理的分配)添加额外的输出 Surface 。然后,对于您的录制请求,也将 ImageReader 表面作为目标。

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

然后为 ImageReader 创建一个侦听器,并使用onImageAvailable回调在帧进入时对其进行处理。

于 2016-01-28T21:02:29.173 回答