同时使用前置和后置摄像头android

Posted

技术标签:

【中文标题】同时使用前置和后置摄像头android【英文标题】:Using both front and back cameras simultaneously android 【发布时间】:2012-07-10 07:41:42 【问题描述】:

我知道这个问题已经被问过很多次了。一年多前我已经找过它,但没有找到任何东西,所以再次发布这个问题以收集是否有任何新的想法/方法或黑客。

我希望能够从 android 设备中的两个摄像头(正面和背面)捕获视频。

到目前为止,我唯一的想法是如何每 0.1 秒在前后切换一次,但是我从来没有能够编写此代码。请任何人对此提供任何帮助。

另一个想法是 - 视频通常以每秒 15 或 30 帧的速度捕获。假设它是每秒 30 帧。如果有一种方法可以将这些帧前后交替,那么我们可以有每秒 15 帧的正面视频和每秒 15 帧的背面视频。这可能吗?如果是,那怎么办?请建议。音频会发生什么?也许我们可以将音频限制为仅其中一个视频记录(正面或背面)。

【问题讨论】:

你有这个问题吗? --> ***.com/questions/7215230 在摄像机之间切换需要很长时间才能正常工作。目前,CameraService 的设计不可能同时使用两个摄像头 我不会走到“不可能”的地步——我希望至少在某些设备上,您可以绕过Camera 类并编写本机代码来与设备驱动程序对话。当然,这只是愿意编写设备特定代码的设备制造商的一种选择。 【参考方案1】:

据我测试,在 HTC m8、OnePlusOne 和摩托罗拉 Nexus 6 上是可能的。更多的手机可能支持它,但你只需要在手机上进行测试,看看应用程序是否崩溃。

您为每个可用的摄像头创建一个摄像头对象,并将每个摄像头附加到预览回调。

-编辑- 到目前为止,我发现这适用于基于 Snapdragon 801 的手机。不知道他们是否都这样做或其他 SOC 支持它,但这就是我目前发现的。

【讨论】:

您是否有一些示例代码(Github?)一旦它们附加到预览回调中,您可以同时记录两者吗? 对不起,但我认为我的工作不允许我发布代码 :) 也许我会在某个时候整理一个教程,因为我不得不拉很多几乎 -将正确但并非真实的信息放在一起,并找出正确的方法。至于录制两个摄像头,是的,您可以,但是您必须添加检查以查看哪个摄像头正在调用回调。现在我想起来了,你甚至可以给每个它自己的回调,但这可能会增加很多开销,因此可能不值得。 谢谢。如果您确实整理了一个非常有用的教程,或者甚至是一些指向您使用的“几乎正确但不是真的”资源的链接,然后是一些指针,那将不胜感激。 谢谢。确实只有基于 Snapdragon 801 的设备支持这个未来。 “据我测试,在 HTC m8、OnePlusOne 和摩托罗拉 Nexus 6 上是可能的” - Play 商店中是否有任何应用程序已经这样做了?【参考方案2】:

可能的,但到目前为止,只有即将推出的三星 Galaxy S4。

它有一个dual-camera feature,但在这个阶段谁知道它是硬件依赖还是三星的软件修改。

希望它可以移植到其他手机上,如果它只是软件的话。

【讨论】:

【参考方案3】:

您不能同时使用两者,并且每 0.1 秒在每个摄像头之间切换一次效果不佳。获取和释放相机对象非常昂贵,而且效果并不理想。

【讨论】:

似乎不是。 (这就是我现在使用 *** 的原因。)release() / open() 在 Galaxy Nexus 上的 per 相机需要 900 到 1000 毫秒,尽管其他线程显示该时间取决于硬件. unlock() / open() 为您提供与 release() / open() 相同的“一次只有一个相机”异常。 谢谢。希望在不久的将来有办法做到这一点。

以上是关于同时使用前置和后置摄像头android的主要内容,如果未能解决你的问题,请参考以下文章

前置摄像头和后置摄像头同时打开?

是否可以同时在 react-native 中使用前置和后置摄像头?

android Camera如何判断当前使用的摄像头是前置还是后置

android Camera 如何判断当前使用的摄像头是前置还是后置

如何同时捕捉 Galaxy S4 中的前置和后置摄像头?

我可以在使用 android studio 开发应用程序时禁用 android 默认摄像头(后置和前置)吗