同时访问后部和前部摄像头

我试图达到的目标:同时访问前后相机

我研究过的东西:我知道Android相机API不支持使用相机的多个实例,而必须在使用另一个相机之前释放相机。 我已经读了几十个关于这个问题,我知道在某些设备上可能(如三星S4,或从他们的其他新设备)。 我也发现可以在SOME设备上的Android KitKat中访问它们。 我也知道,在api> = 21上,使用camera2 API,可以同时访问它们,因为它是线程安全的。

到目前为止,我所得到的是:为了提供画中画而实现一次访问摄像机。

我知道不可能在每台设备上实现双重同步摄像头,我只是希望有一种方法可以将其用于某些设备。

如何testing设备是否能够访问它们?

我也search了一个图书馆,可以让我这样的事情,但我没有find任何东西。 有这样一个图书馆吗?

我想使这个function可用于尽可能多的设备,对于其他设备,我将离开function的当前状态(一个接一个)。

任何人都可以请帮助我,至less有一些build议?

谢谢 !

Solutions Collecting From Web of "同时访问后部和前部摄像头"

Android摄像头API通常允许同时使用多个摄像头,但是大多数设备在实践中没有足够的硬件资源来支持,例如,两个摄像头通常只有一个摄像头image processing器。

如果您可以同时使用多台摄像机,那么Android API中将不会包含任何询问。

唯一的办法是尝试打开第二个摄像头,当你已经打开一个。 如果您可以打开第二台相机,那么您可以进行画中画等。如果您尝试打开第二台相机出现exception,则该特定设备不支持打开两台相机。

由于硬件限制,您无法在所有Android手机中使用相机。 最好的select可以一个接一个地使用相机。 为此,您可以使用单个相机对象,并可以更改相机的脸部以拍摄另一张照片。

我在我的一个应用程序中做了这个。 https://play.google.com/store/apps/details?id=com.ushaapps.bothie

可以使用Android Camera2 API,但是如上所述,大多数设备没有硬件支持。 如果你有一个Nexus 5X,Nexus 6或Nexus 6P,它将工作,你可以用这个BothCameras应用程序进行testing。 我已经使用硬件h264编码器来实现blitting以允许video录制(除静态图片外)。