使用XCode ARKit图像跟踪循环视频
您好,我是一名新开发人员,现在我正在开发一个AR应用程序,该应用程序与图像跟踪一起工作,它应该在不同的跟踪图像上播放不同的视频。 现在视频停止了,我如何循环视频? 此外,如果图像不在相机视图中,视频将继续。还有暂停功能吗? 我会感谢每一个提示使用XCode ARKit图像跟踪循环视频,xcode,loops,video,arkit,Xcode,Loops,Video,Arkit,您好,我是一名新开发人员,现在我正在开发一个AR应用程序,该应用程序与图像跟踪一起工作,它应该在不同的跟踪图像上播放不同的视频。 现在视频停止了,我如何循环视频? 此外,如果图像不在相机视图中,视频将继续。还有暂停功能吗? 我会感谢每一个提示 import UIKit import SceneKit import ARKit class ViewController: UIViewController, ARSCNViewDelegate { @IBOutlet var sceneV
import UIKit
import SceneKit
import ARKit
class ViewController: UIViewController, ARSCNViewDelegate {
@IBOutlet var sceneView: ARSCNView!
override func viewDidLoad() {
super.viewDidLoad()
sceneView.delegate = self
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let configuration = ARImageTrackingConfiguration()
if let trackedImages = ARReferenceImage.referenceImages(inGroupNamed: "AR Resources", bundle: Bundle.main) {
configuration.trackingImages = trackedImages
configuration.maximumNumberOfTrackedImages = 2
}
sceneView.session.run(configuration)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView.session.pause()
}
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
let node = SCNNode()
if let imageAnchor = anchor as? ARImageAnchor {
let size = imageAnchor.referenceImage.physicalSize
var videoNode = SKVideoNode()
switch imageAnchor.name {
case "Image1":
videoNode = SKVideoNode(fileNamed: "Image1.mp4")
case "Image2":
videoNode = SKVideoNode(fileNamed: "Image2.mp4")
case "Image3":
videoNode = SKVideoNode(fileNamed: "Image3.mp4")
default:
break
}
videoNode.play()
let videoScene = SKScene(size: CGSize(width: 1280, height: 960))
videoScene.anchorPoint = CGPoint(x: 0.5, y: 0.5)
videoScene.addChild(videoNode)
let plane = SCNPlane(width: size.width, height: size.height)
plane.firstMaterial?.diffuse.contents = videoScene
let planeNode = SCNNode(geometry: plane)
plane.firstMaterial?.isDoubleSided = true
planeNode.eulerAngles.x = .pi / 2
node.addChildNode(planeNode)
return node
}
return nil
}
}
也许有用?不过你需要这样做。谢谢你的提示,但我不知道在我的代码中在哪里以及如何实现它,所以它可以工作。。。有什么建议吗^^我只能找到循环播放视频和音频的方法。遗憾的是,我不知道在哪里初始化SKVideoNode:(哦,谢谢,没问题,我会试试的^^