Android - 录制视频时在前后摄像头之间切换

Posted

技术标签:

【中文标题】Android - 录制视频时在前后摄像头之间切换【英文标题】:Android - Switch between front and back camera while recording a video 【发布时间】:2018-01-09 16:51:00 【问题描述】:

我正在尝试实现自定义相机来录制视频。我关注了This sample,它运行良好。

现在,我想通过单击按钮添加 “切换相机” 功能。即使正在录制视频,它也应该能够在前置/后置摄像头之间切换

因此请帮助我知道这是否可能??

1.如果是,那么如何?

2。如果没有,请提出一些解决方法??

一些示例代码或链接会很有帮助...

注意:我一直在谷歌上搜索并找到了一些 *** 答案,例如

android Camera2 API switch back - front cameras

Android: Switch camera when button clicked

但这些都没有提供在录制视频时切换相机的功能

请帮忙。

代码与This sample相同。它就是 Camera2 API

【问题讨论】:

不可能,因为CameraCaptureSessionCameraDevice 连接并且前后摄像头是不同的设备...您可以尝试录制另一个文件,然后在用户停止录制后,将文件与某些文件合并媒体库 你找到解决办法了吗? 【参考方案1】:

就我而言,那个摄像头是设备,@Selvin 解释说前后摄像头是不同的设备。现在让我从第一个开始,

某些设备具有自己的功能,您可以在视频录制过程中切换摄像头。例如 Nexus 9。 For more detail please refer this question.

使用 MediaRecorder 的另一种方法。您可以像这个问题的答案一样实施。 how to switch between front and back camera when using MediaRecorder android?

我对此没有更多的想法,但是如果您想这样做,请这样做:- 1. 当您使用后置摄像头录制视频并切换到前置摄像头时,将该视频临时保存在本地并使用前置摄像头加注星标。 2. 现在停止视频录制,然后将这两个文件合并并保存为单个文件..

【讨论】:

感谢您的回复。我会检查链接,尝试解决方案并通知您。 确定让我知道你会得到你的解决方案吗? 我找不到完美的解决方案,因此我接受了您的解决方案。 你好。您是否设法在不保存不同文件然后合并它们的情况下解决它? @iMDroid【参考方案2】:
camera = Camera.open(currentCameraId);
// Pass 0 And 1 currentCameraId
setCameraDisplayOrientation(CameraActivity.this, currentCameraId, camera);
try 

    camera.setPreviewDisplay(previewHolder);
 catch (IOException e) 
    e.printStackTrace();

camera.startPreview();

【讨论】:

这个是打开摄像头,不是切换。请再次阅读问题。 基于按钮点击传递值 0 和 1 。这个答案是用于切换相机并根据 0 和 1 值打开受人尊敬的相机。 这在录制过程中不起作用。我已经提到过。

以上是关于Android - 录制视频时在前后摄像头之间切换的主要内容,如果未能解决你的问题,请参考以下文章

Android拍照丶录制视频功能实现

Android拍照,录制视频,相机简单功能实现

Android 使用CameraX实现预览/拍照/录制视频/图片分析/对焦/缩放/切换摄像头等操作

如何在iOS中一次录制前后摄像头的视频

Android 开发 MediaRecorder使用Camera1配合录制视频

JCameraView 仿微信拍照Android控件(点击拍照,长按录小视频)