【发布时间】:2020-06-06 08:18:32
【问题描述】:
我正在开发一个 ARKit 图像跟踪应用程序,该应用程序将 AVPlayer 视频覆盖在图像目标(Swift5 和 XCode 13)上。我目前将其设置为仅同时跟踪 1 张图像,但我的 AR 参考组中有多个图像目标具有独特的视频。
这一切都很好,除了一个问题 - 即使 AR 相机不再跟踪和渲染视频,每个视频的音频也会继续播放。如果用户在应用中导航到不同的 View Controller,音频甚至会继续播放。
当图像目标不再被跟踪时,如何停止 AVPlayer Audio?
有很多代码,我不确定需要什么来帮助解决问题(最初不包括所有内容),如果其他信息有用,请告诉我。
以 AVPlayer 为材质设置平面
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
let node = SCNNode()
if let imageAnchor = anchor as? ARImageAnchor {
let size = imageAnchor.referenceImage.physicalSize
let videoUrl = Bundle.main.url(forResource: "Nine", withExtension: "mp4")!
let videoPlayer = AVPlayer(url: videoUrl)
videoPlayer.play()
let plane = SCNPlane(width: size.width, height: size.height)
plane.firstMaterial?.diffuse.contents = videoPlayer
let planeNode = SCNNode(geometry: plane)
planeNode.eulerAngles.x = -.pi / 2
}
node.addChildNode(planeNode)
}
return node
感谢您的帮助!!
【问题讨论】:
标签: swift xcode scenekit avplayer arkit