第一:这里有两个主题非常相似,但一个以设备故障结束,其他主题在 C API 上......这就是为什么要提出一个新问题。
我正在使用 Google Tango SDK 和 jMonkeyEngine 来实现科学增强现实应用程序。到目前为止一切都很顺利。但现在我想使用 Tango 中的点云数据,该数据被提供给监听器(类:OnTangoUpdateListener)。 (Tango Depth Perception)有4种方法:
- onPoseAvailable(TangoPoseData 姿势)
- onXyzIjAvailable(TangoXyzIjData xyzIj)
- onTangoEvent(TangoEvent arg0)
- onFrameAvailable(int arg0)
其中 3 个被定期调用。问题是: onXyzIjAvailable 从未被调用,因此我无法访问点云数据。这是我的代码 fragment ,你知道我做错了什么或者我可以尝试什么吗?
public class TangoUpdateListener implements OnTangoUpdateListener {
@Override
public void onXyzIjAvailable(TangoXyzIjData xyzIj)
{
System.out.println("POINT CLOUD AVAILABLE");
Log.e("CLOUD", "CLOUD AVAILABLE");
}
}
整个文件可以在这里找到:Pastebin
感谢您的帮助!
PS:该设备与示例项目完美配合。这不是硬件问题。
最佳答案
我发现是什么抑制了回调。实际上一次只有一项 Activity 可以使用相机。当我开发增强现实应用程序时,我有两项 Activity 。一种用于背景 - 显示相机视频 - 一种用于渲染虚拟对象 - 使用相机获取深度信息。尽管 RGB 摄像头和深度摄像头不是同一设备,但 Android 认为它们是同一设备,并且一次只允许访问其中之一。因此,停用背景视频会启用深度数据回调,反之亦然。
如果有人知道如何同时使用它们——那就太棒了。
干杯, gem
关于java - Google Tango 更新监听器 onXyzIjAvailable 回调永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37001114/