将后置和前置摄像头用于同一 MediaRecorder 会话 Camera2API
Use both back and front camera for the same MediaRecorder session Camera2API
我需要制作一个视频捕捉器,它可以记录一些东西,然后将文件保存到磁盘上。
我成功地让它分别与后置摄像头和前置摄像头一起工作,但我不知道如何让它们一起工作并在它们之间切换,就像本机应用程序在录制时所做的那样。
我读到后置和前置摄像头是独立的设备,但我想知道是否有可能让它们一起工作,或者我唯一能做的就是当我在摄像头之间切换以保存当前文件,启动一个新的媒体记录器会话并记录另一个文件并在我完成后合并它们。
谢谢
在许多现代 Android 手机上,两个摄像头可以并行工作。您不能使用 MediaRecorder
来处理这样的流,因为它可以处理来自一台摄像机的输入(并且您无法控制录制,直到您停止它),或者录制 Surface
.
嗯,原则上你可以在同一个 Surface
上绘制两个相机的帧,然后将这个 Surface
连接到一个 MediaRecorder
,但它不会顺利工作。
你可以做的是,从两个摄像头接收帧,将它们合并在一起以接收合成帧,并将这些帧传递给 MediaCodec
,然后 – 传递给 MediaMuxer
,类似camera recording 示例。
我需要制作一个视频捕捉器,它可以记录一些东西,然后将文件保存到磁盘上。
我成功地让它分别与后置摄像头和前置摄像头一起工作,但我不知道如何让它们一起工作并在它们之间切换,就像本机应用程序在录制时所做的那样。
我读到后置和前置摄像头是独立的设备,但我想知道是否有可能让它们一起工作,或者我唯一能做的就是当我在摄像头之间切换以保存当前文件,启动一个新的媒体记录器会话并记录另一个文件并在我完成后合并它们。
谢谢
在许多现代 Android 手机上,两个摄像头可以并行工作。您不能使用 MediaRecorder
来处理这样的流,因为它可以处理来自一台摄像机的输入(并且您无法控制录制,直到您停止它),或者录制 Surface
.
嗯,原则上你可以在同一个 Surface
上绘制两个相机的帧,然后将这个 Surface
连接到一个 MediaRecorder
,但它不会顺利工作。
你可以做的是,从两个摄像头接收帧,将它们合并在一起以接收合成帧,并将这些帧传递给 MediaCodec
,然后 – 传递给 MediaMuxer
,类似camera recording 示例。