Vuforia 安卓版sdk本身不支持usb摄像头,但是提供了使用USB摄像头作为数据源的方法,也就是需要自定义USBCamearDriver。参考官方文档说明,成功在Windows上调通,此处做一个步骤记录。
先决条件
- 操作系统:参考官方支持Vuforia Engine支持的版本
- Python 2或更高版本
- Bash(在Windows上需要https://git-scm.com/downloads)
- CMake 3.6或更高
- Ninja build system (https://ninja-build.org)
- Android NDK 13b
- Git
- Android SDK with API level 22 support
- libuvc, libusb, libjpg-turbo
- UVCCamera开源项目源码
- Vuforia Android SDK
- Vuforia UVCDriver Sample
- 用于测试的vuforia-samples-core-android
构建依赖关系
在先决条件都具备的情况下,来进行以下操作。
!!!下面用到的所有 [path-in-your-filesystem]都表示你自己工程的正确路径’。
- 解压 Android SDK软件包(最好重命名为VuforiaSDK)。
- 在VuforiaSDK/Samples/下新建文件夹命名为UVCDriver。
- 将 UVCDriver驱动程序示例包解压到VuforiaSDK/Samples/UVCDriver/中。
- 在VuforiaSDK/samples/UVCDriver/下新建文件夹命名为UVCCamera
- 将UVCCamera开源项目源码解压到VuforiaSDK/samples/UVCDriver/UVCCamera/中。【我是直接下载的压缩包,也可以使用Git克隆到该目录中】
- 运行CMD将目录转到UVCCamera/libuvccamera/src/main/jni
cd [path-in-your-filesystem]
。 - 执行ndk-build。
编译UVCCamera驱动程序
在已遵循上面的"编译依赖关系"的情况下,来进行以下操作。
- 继续在CMD中执行,转到VuforiaSDK/samples/UVCDriver目录
cd [path-in-your-filesystem]
- 运行
python build.py
【运行后将会在UVCDriver文件夹下创建一个build文件夹】
使用UVC相机驱动程序
我们使用官方案例进行测试。(vuforia-samples-core-android)
- 将官方案例解压到VuforiaSDK/samples/中,使用Android Studio将该工程打开。
我们需要将编译的UVCCamera驱动程序添加到应用程序中,官方给了两种方法,我就说我使用的这种。使用Gradle
-
在app/build.gradle中完成,如下:
android { sourceSets.main { // 添加 jniLibs.srcDirs += '[path-in-your-filesystem]/UVCDriver/build/bin/Android/' } } dependencies { // 添加,该代码就是为了将UVCDriver.jar添加到项目中 implementation files("[path-in-your-filesystem]/UVCDriver/build/bin/Android/UVCDriver.jar") }
-
在调用Vuforia :: init()之前,在源代码中添加以下调用;
- JAVA的:
Vuforia.setDriverLibrary( “libUVCDriver.so”);
- C++的:
Vuforia :: setDriverLibrary(“libUVCDriver.so”,nullptr);
具体调用代码放置位置为:ActivitySplashScreen.java脚本中的OnCreate()中
本作品由A_AiTing采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。