【发布时间】:2018-11-17 17:09:07
【问题描述】:
我正在实现ArCore 的新增强图像识别功能。我的数据库图像的识别工作正常,当它们被识别时开始播放视频。但是我想知道当图像在场景中不再可见时是否有任何侦听器被调用,以便我可以停止并隐藏该图像的视频。目前在我的实现中,即使我删除了物理图像,视频也会保持在场景中识别图像的相同位置。
【问题讨论】:
标签: android arcore android-augmented-reality sceneform
我正在实现ArCore 的新增强图像识别功能。我的数据库图像的识别工作正常,当它们被识别时开始播放视频。但是我想知道当图像在场景中不再可见时是否有任何侦听器被调用,以便我可以停止并隐藏该图像的视频。目前在我的实现中,即使我删除了物理图像,视频也会保持在场景中识别图像的相同位置。
【问题讨论】:
标签: android arcore android-augmented-reality sceneform
当 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
}
}
}
}
【讨论】:
您可以使用public TrackingState getTrackingState (),如果它返回public static final TrackingState STOPPED,您可以根据需要停止视频或销毁。更多详情可以参考here
【讨论】:
TRACKING,所以STOPPED没有像我预期的那样被调用它去做。