在我的 Android 应用程序中,我需要连续捕获相机图像并不断通过网络发送它们以供远程查看。
我查看了 Camera2
录制示例。这段代码似乎依赖于 MediaRecorder
类。然而,就我而言,我只需要尽快捕获原始图像,以特定方式对其进行编码,然后通过网络发送。
看起来 Camera2 API 的核心概念是它需要一个 Surface
类。是否可以创建一个伪表面类并以某种方式附加到它,以便可以连续捕获图像?或者,还有更好的方法?问候。
最佳答案
如果您只需要未压缩 YUV 数据的 ByteBuffers,则可以使用 ImageReader。
如果您确实想在通过网络发送帧之前对其进行编码,您可以使用连接到相机的 MediaCodec(它可以为您提供表面)在将帧发送到目的地之前对帧进行高效编码。这是假设您想要的编码类型在设备上可用。
后者是大多数视频聊天应用程序尽可能做的事情。
关于android - 在不使用 MediaRecorder 的情况下使用 Camera2 API 进行录制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50462732/