android - 在不使用 MediaRecorder 的情况下使用 Camera2 API 进行录制

标签 android android-camera2

在我的 Android 应用程序中,我需要连续捕获相机图像并不断通过网络发送它们以供远程查看。

我查看了 Camera2 录制示例。这段代码似乎依赖于 MediaRecorder 类。然而,就我而言,我只需要尽快捕获原始图像,以特定方式对其进行编码,然后通过网络发送。

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

最佳答案

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

如果您确实想在通过网络发送帧之前对其进行编码,您可以使用连接到相机的 MediaCodec(它可以为您提供表面)在将帧发送到目的地之前对帧进行高效编码。这是假设您想要的编码类型在设备上可用。

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

关于android - 在不使用 MediaRecorder 的情况下使用 Camera2 API 进行录制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50462732/

相关文章:

android - 从数组中获取字符串

Android 相机视频为空白,带有白线

android - 如何使用 Camera2 使用裁剪后的相机预览填充非标准尺寸的 SurfaceView?

android - 如何在 camera2 api,android 中锁定焦点?

android - 从 Android Market 更新应用程序后的推荐人

android - 如何在android列表中显示ArrayAdapter的文本和图标?

android - React Native android camera2 纵横比问题

android - 这是 Android 中用于图像处理的最佳 Camera API

Android 小部件使用 putextra 开始新 Activity

android - 在 Activity 和 fragment 之间传递数据或行为