【问题标题】:ArCore Augmented Images image not visibleArCore 增强图像图像不可见
【发布时间】:2018-11-17 17:09:07
【问题描述】:

我正在实现ArCore 的新增强图像识别功能。我的数据库图像的识别工作正常,当它们被识别时开始播放视频。但是我想知道当图像在场景中不再可见时是否有任何侦听器被调用,以便我可以停止并隐藏该图像的视频。目前在我的实现中,即使我删除了物理图像,视频也会保持在场景中识别图像的相同位置。

【问题讨论】:

    标签: android arcore android-augmented-reality sceneform


    【解决方案1】:

    当 TrackingState 为 Tracking 时,检查当前 TrackingMethod 的 AugmentedImage。当图像在相机视野中时,TrackingMethod 为 FULL_TRACKING ,否则它将在 LAST_KNOWN_POSE 中。如果您使用的是示例 augmentedImages 示例,它在 AugmentedImageActvity.java 中将是这样的 -

     private void onUpdateFrame(FrameTime frameTime) 
     {
     .
       for (AugmentedImage augmentedImage : updatedAugmentedImages) 
       {
       .
         switch (augmentedImage.getTrackingState())
         {
         .
           case TRACKING: if(augmentedImage.getTrackingMethod()==AugmentedImage.TrackingMethod.FULL_TRACKING) {
                            //Enable VideoNode 
                          }
                          else{
                            //Disable VideoNode / Pause MediaPlayer /detach node
                          }
          }
        }
      }
    

    【讨论】:

      【解决方案2】:

      您可以使用public TrackingState getTrackingState (),如果它返回public static final TrackingState STOPPED,您可以根据需要停止视频或销毁。更多详情可以参考here

      【讨论】:

      • 我一开始也是这么想的,但是即使我从场景中删除图像,图像的跟踪状态仍然是TRACKING,所以STOPPED没有像我预期的那样被调用它去做。
      • 您检查过AugmentedImage 示例。这应该完全符合您的要求。
      • 我的代码基于此,但正如我所提到的,跟踪状态没有按预期工作
      • 您能否分享您检查跟踪的代码,以便我可以尝试重现错误?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 2019-11-05
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      相关资源
      最近更新 更多