gpt4 book ai didi

ios - AR App 根据 ARImageAnchor 播放不同的视频

转载 作者:行者123 更新时间:2023-11-28 05:40:26 28 4
gpt4 key购买 nike

我正在为 iOS 创建一个 AR 应用程序来检测立方体上的图像(--> 要识别的 6 个不同图像)。每当检测到一张图像时,都应播放视频 - 每个不同的图像都有不同的视频(对于图像 1,应播放视频 1...)。

我的问题是我不知道如何跟踪当前跟踪的图像以及基于此播放哪个视频

现在该应用程序跟踪不同的图像,但始终播放相同的视频(视频“1”.mp4)

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let configuration = ARImageTrackingConfiguration()

if let trackedImages = ARReferenceImage.referenceImages(inGroupNamed: "ARImages", bundle: Bundle.main) {
configuration.trackingImages = trackedImages
configuration.maximumNumberOfTrackedImages = 6
}
sceneView.session.run(configuration)
}

override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
sceneView.session.pause()
}

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {

guard let imageAnchor = anchor as? ARImageAnchor,
let fileUrlString = Bundle.main.path(forResource: "1", ofType: "mp4") else {
return
}
let videoItem = AVPlayerItem(url: URL(fileURLWithPath: fileUrlString))
let player = AVPlayer(playerItem: videoItem)
let videoNode = SKVideoNode(avPlayer: player)

player.play()
...
}

如何识别当前ImageAnchor并链接相关视频?

最佳答案

您可以为 ARReferenceImage 命名,因此一种方法是为图像和关联的视频文件命名。

guard let imageAnchor = anchor as? ARImageAnchor,
let name = imageAnchor.referenceImage.name,
let fileUrlString = Bundle.main.path(forResource: name, ofType: "mp4") else {
return
}

let videoItem = AVPlayerItem(url: URL(fileURLWithPath: fileUrlString))
let player = AVPlayer(playerItem: videoItem)
let videoNode = SKVideoNode(avPlayer: player)

player.play()

关于ios - AR App 根据 ARImageAnchor 播放不同的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56948173/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com