【问题标题】:Android, Open Front and Back Cameras Simultaneously [duplicate]Android,同时打开前后摄像头[重复]
【发布时间】:2015-04-05 10:37:06
【问题描述】:

我正在尝试使用 2 个 Surface Holder 对象,这些对象绑定到 2 个单独的 SurfaceView。 我支持一组为后置摄像头执行 Camera.Open(0),为前置摄像头执行 Camera.Open(1)。 无论我调用哪个相机先打开,我都能获得完美的预览,但无法同时打开两个相机,即使我为每个相机使用单独的 SurfaceViews 和 SurfaceHolders。

在 Android 下是不可能做到这一点的吗?我看过一些帖子暗示这要么不可能,要么取决于手机硬件,但没有具体解释原因。

有人能解释一下为什么 Android 似乎不支持这个吗? 如果支持,有人可以建议同时打开两个相机的正确方法吗?

我还看到了一些建议,应该可以使用 OpenCV。如果是这样,有人可以提供一个示例或类似的链接吗?

感谢和问候,

骏马。

【问题讨论】:

  • 这是一个相当模糊的话题,似乎不可能,它是制造商/设备特定的,有自己的定制软件。您必须查看是否可以获得制造商的 API 和/或代码才能执行此操作。
  • 我一直在寻找同样的东西。这可能会有所帮助:stackoverflow.com/questions/12382322/…

标签: android android-camera


【解决方案1】:

这是可能的,因为我已经在我的 Nexus 6 上完成了它,甚至在使用 Camera1 API 时同时从两个摄像头录制视频。但是,它仅限于少数设备。

任何不受支持的设备都应该在第二次 Camera.open() 调用期间报错。似乎每个硬件制造商都提供了不同的相机 API 实现。如果相机不允许,您可以很容易地尝试/捕获异常。

【讨论】:

  • 你是怎么做到的?你可以发布一些代码
【解决方案2】:

这在某些手机和几乎所有较新的手机上都是可能的。我发现使用 Snapdragon 801 及更高芯片组的设备支持此功能(OnePlus 1、HTC M8 等)。这是 2014 年的某个地方。

这完全取决于硬件/制造商,您应该在真实设备上进行测试。

另外请注意,第一个 Camera API 以 YUV 输出,因此如果您想使用图像/视频,则必须处理此转换为另一种格式;您可以在 SurfaceView 上实时显示它,但保存为图片/视频我建议您保存 YUV 并稍后/在单独的线程上转换,尽管您可以在单独的线程上实时保存和转换单个图像。

抱歉回复晚了,但我希望您或其他人可以使用此信息!

【讨论】:

    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 2019-07-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2012-05-27
    相关资源
    最近更新 更多