首页 > 解决方案 > 重置 AVPlayer 和 ARImageTracking

问题描述

我制作了一个应用程序,允许您使用 ios 设备扫描图像并使用 arKit tracking 播放视频。但是,一旦视频完成,我似乎无法找到让它重新启动的方法。无论如何我可以回忆起视图控制器中的所有代码吗?

if let imageAnchor = anchor as? ARImageAnchor {
    // Create a plane
    let plane = SCNPlane(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height)
    if imageAnchor.referenceImage.name == "skateboard" {
        // Set AVPlayer as the plane's texture and play
        plane.firstMaterial?.diffuse.contents = self.SkateboardVideoPlayer
        self.SkateboardVideoPlayer.play()
    }
}

标签: iosswiftxcodearkit

解决方案


您是否尝试过使用通知观察者循环播放视频?从这里查看下面的代码:

var SkateboardVideoPlayer: AVPlayer!

// In viewDidLoad or similar method
...

NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: self.SkateboardVideoPlayer.currentItem, queue: .main) { [weak self] _ in
    self?.SkateboardVideoPlayer?.seek(to: CMTime.zero)
    self?.SkateboardVideoPlayer?.play()
}

推荐阅读