Android - 在录制视频时前后摄像头如何切换

16

我正在尝试实现自定义相机来录制视频。我已经按照这个示例所述操作,并且它可以正常工作。

现在,我想通过按钮点击添加“切换相机”功能。它应该能够在录制视频时在前置/后置相机之间进行切换

因此,请帮助我了解是否可能??

1. 如果可以,那么怎样实现?

2. 如果不行,那么请建议一些解决方法?

提供一些示例代码或链接将非常有帮助...

注意:我已经在谷歌上搜索过了,并发现了一些StackOverFlow的答案,比如

Android Camera2 API switch back - front cameras

Android: Switch camera when button clicked

但是其中没有一个可以在录制视频时切换相机

请帮忙解决。

代码与此示例相同。它使用的是Camera2 API


3
由于 CameraCaptureSession 与前置和后置摄像头是不同的设备相连,因此无法实现此功能。您可以尝试录制另一个文件,然后在用户停止录制后,使用某些媒体库合并文件。 - Selvin
你找到任何解决方案了吗? - Ponomarenko Oleh
2个回答

6
据我所知,相机是一种设备,@Selvin解释了前置和后置摄像头是不同的设备。现在让我从头开始,一些设备有自己的功能,你可以在录制视频时切换摄像头,例如Nexus 9。更多细节请参考此问题。另一种方法是使用MediaRecorder。你可以像这个问题的答案实现。如何在使用MediaRecorder android时在前置和后置摄像头之间切换?我没有更多关于此的想法,但如果你想这样做,请按照以下步骤操作:1.使用后置摄像头录制视频并切换到前置摄像头,然后将该视频临时保存在本地并以前置摄像头开始录制。2.现在停止视频录制,然后合并两个文件并保存为单个文件。

谢谢回复。我会检查链接,尝试解决方案并告诉您结果。 - iMDroid
当然,让我知道你是否得到了解决方案? - Farmer
我找不到完美的解决方案,因此我接受你的。 - iMDroid
你好。你成功解决了这个问题吗,而不需要保存不同的文件然后再合并它们吗?@iMDroid - Ciobanu Razvan

0
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();
}

这是为了打开相机而不是切换它。请再次阅读问题。 - iMDroid
基于按钮点击传递值0和1。这个答案是为了根据0和1的值切换相机并打开相应的相机。 - PRATEEK BHARDWAJ
这在录制过程中不起作用。我已经提到了。 - iMDroid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接