如何删除相机焦点上的锚点节点

时间:2019-06-03 14:38:03

标签: android augmented-reality arcore

我正在开发一个应用,其中在图像检测中,我正在播放视频作为锚点。一切工作都完美无缺,只是视频停止了相机对焦。即使将相机从检测到的图像上移开,我仍可以听到视频播放的音频。我尝试了增强图像跟踪状态停止,但没有帮助。

是否有任何回调或观察器可用来检查相机是否未聚焦于增强图像?

1 个答案:

答案 0 :(得分:1)

AFAIK目前没有可用的回叫-ARCore问题列表中已经讨论了这种类型的事情,并且注意到它不在ARCore的范围内:https://github.com/google-ar/arcore-android-sdk/issues/78

但是,您可以通过将节点的世界点映射到屏幕点,然后检查它是否在'arSceneView.scene.camera'视图范围之内来检查自己-请参阅下面的x和y值,以指示是否在ARCore文档中的视图之外:https://developers.google.com/ar/reference/java/sceneform/reference/com/google/ar/sceneform/Camera#worldToScreenPoint(com.google.ar.sceneform.math.Vector3)

  

公共Vector3 worldToScreenPoint(Vector3点)

     

将点从世界空间转换为屏幕空间。

     

当该点位于视口左侧时,X值为负;当该点在视口内时,X值为0至SceneView的宽度;当该点在视口右侧时,X值大于该宽度。 / p>      

当点在视口下方时,Y值为负;当点在视口内时,Y值在0至SceneView的高度之间;当点在视口上方时,Y值大于高度。

     

Z值始终为0,因为返回值是2D坐标。