使用Camera2 API录制而不使用MediaRecorder

时间:2018-05-22 08:06:29

标签: android android-camera2

在我的Android应用程序中,我需要不断捕获摄像头图像并继续通过网络发送它们以进行远程查看。

我查看了Camera2录音样本。看来这段代码依赖于MediaRecorder类。但是,就我而言,我只需要尽可能快地捕获原始图像,以特定方式对其进行编码,然后通过网络发送。

看起来Camera2 API的核心概念是它需要Surface类。是否有可能创建一个伪表面类并以某种方式附加到它上面,以便可以连续捕获图像?或者,还有更好的方法?问候。

1 个答案:

答案 0 :(得分:1)

如果您只想要未压缩的YUV数据的ByteBuffers,则可以使用ImageReader。

如果您确实希望在通过网络发送帧之前对帧进行编码,则可以使用连接到相机的MediaCodec(可以为您提供Surface)来有效地对帧进行编码,然后再将帧发送到目的地。假设您想要的编码类型可以在设备上使用。

后者是大多数视频聊天应用程序所做的事情。