首页 > 解决方案 > AR Kit 识别和播放多个视频

问题描述

希望每个人都安然无恙...只是一个简单的问题...我正在学习一些 AR Kit 教程,我可以让应用程序在识别图像时播放,我可以识别文档中的多个图像并打印图像名称到控制台。我正在寻求帮助以使该应用程序执行以下操作:一次仅播放一个视频,这是每个图像的不同视频。到目前为止的代码......非常感谢任何帮助或指导!

@IBOutlet var sceneView:ARSCNView!

override func viewDidLoad() {
    super.viewDidLoad()
    
    sceneView.delegate = self
    
    sceneView.showsStatistics = true
    
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    
    let configuration = ARImageTrackingConfiguration()
    
    if let trackedImages = ARReferenceImage.referenceImages(inGroupNamed: "DistressImages", bundle: Bundle.main) {
        
        configuration.trackingImages = trackedImages
        
        configuration.maximumNumberOfTrackedImages = 3
        
    }
    
    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 videoNode = SKVideoNode(fileNamed: "distress.mp4")
        
        videoNode.play()
        
            let videoScene = SKScene(size: CGSize(width: 1920, height: 1080))
            
            videoNode.position = CGPoint(x: videoScene.size.width / 2, y: videoScene.size.height / 2)
            
            videoNode.yScale = -1.0
            
            videoScene.addChild(videoNode)
            
            let plane = SCNPlane(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height)
            
            plane.firstMaterial?.diffuse.contents = videoScene
            
            let planeNode = SCNNode(geometry: plane)
            
            planeNode.eulerAngles.x = -.pi / 2
            
            node.addChildNode(planeNode)
        
        let image = imageAnchor.referenceImage
        print(image.name)
        
    }
    
    return node
}

}

标签: swiftxcodearkit

解决方案


推荐阅读