【问题标题】:Google Tango Update Listener onXyzIjAvailable Callback never gets calledGoogle Tango 更新监听器 onXyzIjAvailable 回调永远不会被调用
【发布时间】:2016-08-28 07:41:29
【问题描述】:

首先:这里有两个非常相似的主题,但一个以设备故障结束,其他在 C API 上......这就是为什么要打开一个新问题。

我正在将 Google Tango SDK 与 jMonkeyEngine 一起用于科学的增强现实应用程序。到目前为止,一切都很好。但现在我想使用来自 Tango 的点云数据,它被提供给一个 Listener(类:OnTangoUpdateListener)。 (Tango Depth Perception) 有4种方法:

  • onPoseAvailable(TangoPoseData 姿势)
  • onXyzIjAvailable(TangoXyzIjData xyzIj)
  • onTangoEvent(TangoEvent arg0)
  • onFrameAvailable(int arg0)

定期调用其中的 3 个。问题是: onXyzIjAvailable 从未被调用,因此我无法访问点云数据。这是我的代码sn-p,你知道我做错了什么或者我可以尝试什么吗?

public class TangoUpdateListener implements OnTangoUpdateListener {
@Override
            public void onXyzIjAvailable(TangoXyzIjData xyzIj)
            {

                System.out.println("POINT CLOUD AVAILABLE");
                Log.e("CLOUD", "CLOUD AVAILABLE");
        }
}

整个文件可以在这里找到:Pastebin

感谢您的帮助!

PS:该设备与示例项目完美配合。这不是硬件问题。

【问题讨论】:

  • 你解决了吗?看看stackoverflow.com/questions/31981756/… 以供参考。
  • 该线程以开线器返回他的探戈而结束,因为它有问题。但是,我发现了哪个部分抑制了回调。 PointCloudSensor 似乎需要摄像头。我将相机提供给第二个活动,以在增强现实应用程序的背景中显示相机图像。问题是,一次似乎只有一个活动能够访问相机......希望有人能提供帮助:)
  • 是的,相机是一个实例,只有一个应用程序/服务/活动等可以使用它。对于我所得到的,您只能在将 Tango 对象连接到渲染器(并将该渲染器连接到 Surface)时获得点云。我不确定是怎么想的,因为我只是根据我的经验而不是群众的智慧做出这个假设。

标签: java android depth jmonkeyengine tango


【解决方案1】:

我发现了抑制回调的原因。 Acutally 一次只有一项活动可以使用相机。在开发增强现实应用程序时,我有两个活动。一种用于背景 - 显示相机视频 - 一种用于渲染虚拟对象 - 使用相机获取深度信息。虽然 RGB 摄像头和深度摄像头不是同一个设备,但 Android 认为它们是,并且一次只允许访问其中一个。因此,停用背景视频会启用深度数据回调,反之亦然。

如果有人知道如何同时使用这两种方法,那就太好了。

干杯, 宝石

【讨论】:

    猜你喜欢
    • 2012-03-20
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 2015-07-28
    • 2013-11-23
    • 1970-01-01
    相关资源
    最近更新 更多