使用ARKit在增强现实中显示视频

首先,我要做的是浏览Pinterest来检索此特定打印件。 接下来,我裁剪了将要检测并覆盖实际视频的图像。

最后,我们将在检测到的图像上播放视频。

现在您已经创建了一个项目,让我们在资产文件夹Assets.xcassets创建一个新的AR资源组。

添加裁剪后的图像(我的图像被命名为black )并为其设置尺寸。 尺寸是我们实际的 在我们打印的照片上裁剪图像尺寸。 根据我的测量,我打印的照片约为14x15cm。 键入宽度0.14米后,Xcode会自动生成高度。

接下来,拖放将用于播放检测到的图像的视频文件。

确保在添加视频时,将其添加到我们的项目目标中。

添加代码

删除ViewController.swift所有代码,并将其替换为上面的代码。 我们在这里所做的是设置AR配置以跟踪图像并设置应用程序应跟踪的图像

接下来,我们将使用一种委托方法将视频添加到检测到的图像上。 当要向场景中添加节点时,委托方法会通知我们。 该节点将为空,因此我们可以自定义。

但是在我们输入新代码之前,这将是逻辑流程:

  1. 首先检测我们的应用何时在锚中添加了新节点
  2. 检查我们的锚点是否匹配ARImageAnchor ,如果匹配,则表示检测到我们的图像
  3. 创建一个包含我们的视频文件的视频节点,并将其添加到视频场景中。 调整所有必要的位置
  4. 创建一个与检测到的图像具有相同方向和大小的新平面
  5. 将我们的视频节点添加到飞机上
  6. 创建一个包含该平面的新节点
  7. 将此新节点添加为子节点

这就是我们最终的结果。 让我们运行该应用程序并查看结果!

真好! 我们的AR应用程序正在按预期运行! 但是,有一个小问题。 原始的《 Daily Prophet新闻具有循环效果,因此让我们将视频循环显示在图像上。

循环播放视频

编辑我们的代码如上。 我们已更改的是:

  1. 我们使用AVPlayer播放项目
  2. 使用AVPlayer初始化我们的video node
  3. 添加观察者,以便当播放器完成其当前项目时,重置视频并再次播放

继续运行该应用程序! 最终输出应该与我们要实现的输出非常相似!