安卓系统中是否可以同时使用前置摄像头和后置摄像头?

15

我想同时使用设备的前置和后置摄像头。在我的应用中,屏幕的前一半将显示后置摄像头的预览,后一半将显示前置摄像头的预览。

我已经尝试使用两个不同的摄像头预览来实现此目标,但是当我打开我的应用程序时,显示后置摄像头预览的屏幕的前一半没有显示预览。而显示前置摄像头预览的屏幕的后一半却显示后置摄像头(很奇怪)。

根据Camera.open(int)文档

您的应用程序一次仅应为特定硬件相机激活一个相机对象。

这意味着如果两个相机硬件(前置和后置)不同,则可以同时打开它们。

在我的应用程序中,我正在使用上述API。当我同时为两个摄像头打开并调用Camera.startPreview();时,它并没有抛出任何异常或错误。但它仍然不能正常工作。我一次只能看到一个摄像头的预览。

我是否遗漏了使用两个摄像头同时工作的任何内容?


1
在我的 Nexus 6 上运行正常,但在其他设备上失败。 - Dean Wild
3个回答

26

2
无法工作。在获取第二个相机时失败。不过,Camera2 API 可能支持此功能。 - kchoi
1
@user3094508:你改过框架吗?在三星手机上,无法创建两个相机实例。 - AndroDev
1
似乎与设备有关,我能够在Nexus 6上成功打开2个相机,但在我的其他设备上无法打开。 - Dean Wild
1
它可以工作!如果您的设备使用Android 6.0(API 23)或更高版本,请不要忘记在运行时请求相机权限。https://dev59.com/DVgQ5IYBdhLWcg3wvGm4 - Erik Medina
我已经检查了Bitbucket项目,但是没有找到OpenCV的使用。 - midhun p
显示剩余2条评论

4

1
我已经查看了上述链接。但是它们都说同样的事情。这是不可能的。:( - AndroDev
硬件是不同的。但它们都属于相机类,您不能同时打开两个相机连接。即使在您的应用程序中打开了相机实例,也不能打开其他应用程序的相机实例。您必须释放相机实例,以便其他应用程序可以使用它。 - Developine

-4

这是针对旧的android.hardware.camera API。android.hardware.camera2的<a href="https://developer.android.com/reference/android/hardware/camera2/CameraManager.html#openCamera(java.lang.String, android.hardware.camera2.CameraDevice.StateCallback, android.os.Handler)" title="openCamera link">CameraManager.openCamera</a>没有说明这个限制。 - kcstrom
4
这句话明确表示每个硬件相机只能有一个对象。没有任何暗示表明您不能在前置摄像头和后置摄像头分别拍摄。 - fortran

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