Я работаю над приложением ARKit Image Tracking, которое накладывает видео AVPlayer на изображение Target (Swift5 и XCode 13). В настоящее время он настроен на отслеживание только одного изображения одновременно, но в моей эталонной группе AR есть несколько целевых изображений с уникальными видео.
Все это работает нормально, за исключением одной проблемы - звук каждого видео продолжает воспроизводить, даже если видео больше не отслеживается и не воспроизводится камерой AR. Звук даже продолжает воспроизводиться, если пользователь переходит к другому контроллеру представления в приложении.
Как я могу остановить 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
Спасибо за любую помощь !!