ios - 重置 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()
}
}
解决方案
您是否尝试过使用通知观察者循环播放视频?从这里查看下面的代码:
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()
}
推荐阅读
- javascript - Javascript document.getElementById 在页面上多次
- facebook - Facebook 应用审核 - 要使用“页面公共内容访问”,您对该端点的使用必须经过 Facebook 审核和批准
- java - Camel CXF - 操作输出解组错误
- javascript - 倒数计时器多项
- java - How to parse 2018-06-19T05:50:31.000+0000 date string to Date
- python - Selenium ConnectionAbortedError
- azure - 什么在请求我的 azure servicebus 队列
- optimization - Julia 的 Optim.jl 包无法执行盒装优化
- php - 如何在 Laravel 中检查多个 url 的状态
- jquery - 使用 jQuery 重新组织项目