在录制视频时在 Android 中切换相机(从后到前和从前到后) - Camera2

问题描述 投票:0回答:1

我在寻找什么

  • 如何在 Android 应用程序上录制视频时将摄像头从前向后(或从后向前)切换
  • 应使用camera2 API(旧相机API中没有已弃用的API)

到目前为止我所尝试过的

  • 使用
    MediaRecorder
    ,我可以在切换摄像机时暂停录像机,并在打开切换的摄像机时恢复录像。
    • 这个问题是我无法重新配置方向,因为录音机已经准备好并处于恢复状态。
    • 我已经尝试过此 FlipCam 存储库代码中的代码,它适用于较低的 Android 版本,但不适用于最新版本。 (它使用过时的相机 API 和代码太复杂,难以理解)

从 FlipCam 存储库中,我可以看到他们正在尝试在

GLSurfaceView
上渲染相机输出,当我们开始录制时,他们使用 OpenGl 将表面视图中的帧复制到
MediaRecorder
的表面。

现在,OpenGL 是非常低级的 API,我宁愿使用一些维护较少的高级 API。

还有一种方法是我们只保存视频的临时部分,然后在最后合并。但这样做需要一些时间来处理,我希望当用户停止录制时输出几乎是即时的。

使用

MediaCodec
MediaMuxer
可以吗?请分享您的想法或提供任何指导路径来使用最新且相对较高级别的 Android API 来实现这一点。

android surfaceview android-camera2 android-mediacodec video-recording
1个回答
0
投票

Jetpack CameraX 库刚刚在其

1.3.0-rc01
版本中添加了对此功能的支持。

即使您不想采用该库,您也可以看到它如何添加此功能。我不确定 MediaRecorder 可以处理这个问题,但 MediaCodec 当然可以,最有可能使用持久表面

© www.soinside.com 2019 - 2024. All rights reserved.