使用ARKit在增强现实中显示视频
首先,我要做的是浏览Pinterest来检索此特定打印件。 接下来,我裁剪了将要检测并覆盖实际视频的图像。
最后,我们将在检测到的图像上播放视频。
现在您已经创建了一个项目,让我们在资产文件夹Assets.xcassets
创建一个新的AR资源组。
添加裁剪后的图像(我的图像被命名为black
)并为其设置尺寸。 尺寸是我们实际的 在我们打印的照片上裁剪图像尺寸。 根据我的测量,我打印的照片约为14x15cm。 键入宽度0.14米后,Xcode会自动生成高度。
接下来,拖放将用于播放检测到的图像的视频文件。
确保在添加视频时,将其添加到我们的项目目标中。
添加代码
删除ViewController.swift
所有代码,并将其替换为上面的代码。 我们在这里所做的是设置AR配置以跟踪图像并设置应用程序应跟踪的图像 。
接下来,我们将使用一种委托方法将视频添加到检测到的图像上。 当要向场景中添加节点时,委托方法会通知我们。 该节点将为空,因此我们可以自定义。
但是在我们输入新代码之前,这将是逻辑流程:
- 首先检测我们的应用何时在锚中添加了新节点
- 检查我们的锚点是否匹配
ARImageAnchor
,如果匹配,则表示检测到我们的图像 - 创建一个包含我们的视频文件的视频节点,并将其添加到视频场景中。 调整所有必要的位置
- 创建一个与检测到的图像具有相同方向和大小的新平面
- 将我们的视频节点添加到飞机上
- 创建一个包含该平面的新节点
- 将此新节点添加为子节点
这就是我们最终的结果。 让我们运行该应用程序并查看结果!
真好! 我们的AR应用程序正在按预期运行! 但是,有一个小问题。 原始的《 Daily Prophet
新闻具有循环效果,因此让我们将视频循环显示在图像上。
循环播放视频
编辑我们的代码如上。 我们已更改的是:
- 我们使用
AVPlayer
播放项目 - 使用
AVPlayer
初始化我们的video node
- 添加观察者,以便当播放器完成其当前项目时,重置视频并再次播放
继续运行该应用程序! 最终输出应该与我们要实现的输出非常相似!