Android打开外置UVC相机代替硬件相机

use*_*855 7 android android-camera

我需要打开外置UVC相机

Camera.open(CameraId);

但没有工作

请帮忙?

Phi*_*hen 6

我正在研究这个主题几天,并将在这里贡献我的部分发现。

  1. 有一个本机库可用于访问外部 UVC 相机https://github.com/ktossell/libuvc。我发现这个项目使用了它,当我编译和测试它时,我发现样本只是部分稳定,并且它承载的源代码不堪重负。
  2. 2 岁的 Camera2 API 似乎包括外部相机支持。我在Android 项目文档 - 相机设备中找到了以下语句:

    “外部相机(例如 USB 热插拔相机)支持。API 更新指定相机静态信息仅在相机连接并准备用于外部热插拔相机时可用。获取静态信息的调用将是无效调用状态不是 CAMERA_DEVICE_STATUS_PRESENT。框架仅依靠设备状态更改回调来管理可用的外部摄像机列表。”

我还无法使用访问我的网络摄像头的Camera2 API编写代码。

最后,我什至在Android源代码中发现了以下代码

(144) // TODO:合并 HAL API 更改后更新到 CAMERA_FACING_EXTERNAL。

而 CAMERA_FACING_EXTERNAL 是外部摄像头的CameraInfo 类的新值,显然不是 FRONT 也不是后部。

我希望这将帮助您朝着完整的答案前进。


Edd*_*ala 6

不幸的是,虽然camera2 API 确实具有支持USB 网络摄像头等外部摄像头所需的API 接口,但还没有对外部摄像头的标准低级支持。

一些个别设备制造商确实有这样的支持,但目前这只是少数设备。

在此之前,让 Android 应用程序可以使用 USB 网络摄像头的唯一方法是直接使用原始 USB API,而根本不使用相机 API。您可以尝试找到要使用的现有 UVC 库,也可以编写自己的库。


Bha*_*anz 6

尝试和测试:https : //github.com/saki4510t/UVCCamera

上面的链接在一个主应用程序中带有 8 个不同的应用程序,每个应用程序都实现了不同的功能。浏览应用程序。

使用 libuvc 库访问外部摄像头。