swift - 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
}
}
解决方案
推荐阅读
- amazon-web-services - 使用 kubectl 访问 AWS 时出现 SSL 问题
- wcf - WCF:方法返回一个响应,在产生一个线程做后台处理之后
- java - 连接到删除主机时apache FTP客户端连接超时
- c# - MVC Razor 检查无线电输入以启用
- python - 将 gRPC 与 gevent 一起使用
- android - 如何在片段中获取 getString?
- c - Learn C the Hard Way 的 ex17 数据库设计问题
- amazon-web-services - AWS Kinesis 代理无权执行:firehose:PutRecordBatch
- javascript - Ajax 将请求发布到 .NET Core 操作并获得结果不起作用
- bash - 计算在加法和减法之间交替的序列