使用NDK访问安卓相机

5
我一直在尝试使用NDK通过HAL接口访问Android上的相机。我已从以下链接下载了所有相关文件: https://github.com/android/platform_hardware_libhardware/blob/master/include/hardware/camera.hhttps://github.com/android/platform_system_core。 看起来我已经成功获取了所有相关文件,但由于众多错误,项目无法编译,从有问题的makefile到缺少函数,如下所示:
C:/android-ndk-r10d/samples/hello-jni/jni/camera/Camera.cpp:409:55: error: 'clone_camera_metadata' was not declared in this scope
         mSettings = clone_camera_metadata(new_settings);

有没有成功使用相机硬件抽象层的人能够解决这个问题呢?

谢谢。


这并不是为了工作而设计的,因为它不是公共接口。你可能会花费大量时间来解决利用私有内部功能的细节问题,但最终你的代码可能会在另一台设备上甚至在同一台设备的Android升级后出现故障。 - Chris Stratton
代码应该在专用设备上运行,所以这不会是一个问题。 - Daniel Zhevelev
1
那么您可能希望将其构建为AOSP构建系统的一部分,而不是使用NDK。否则,您将不得不适应您的依赖项的整个依赖关系集。或者,您可以像其他人一样使用稳定、受支持的公共Java级别API。 - Chris Stratton
1
事实是,我正在尝试为已经编写的ndk代码添加功能,所以我必须这样做。我想导入头文件并使用一个.so对象来处理相机HAL,如果可能的话。 - Daniel Zhevelev
不,你不必那样做。 - Chris Stratton
1个回答

0

我知道2个解决方案来解决您的问题:

  • 您可以使用OpenCV获取相机的当前帧。 OpenCV在Android上构建良好。
  • 使用一些不太花哨的Java调用。

虽然我很高兴看到您仅使用ndk代码:)(也许可以检查一下OpenCV的开发人员是如何使其工作的)


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