我正在开发一个播放音频所需的 AR 应用程序。
我已经这样做了:
guard let audioSource = SCNAudioSource(fileNamed: "sample.mp3") else { return }
audioSource.loops = false
audioSource.load()
node.runAction(SCNAction.playAudio(audioSource, waitForCompletion: false))
它工作正常,只是我无法阻止它播放。
我也试过:
node.enumerateChildNodes { (childNode, _) in
childNode.removeAllAudioPlayers()
childNode.removeFromParentNode()
}
但它仍在播放。
有人知道如何阻止它吗?
更新: 我已经尝试过:
guard let audioSource = SCNAudioSource(fileNamed: "sample.mp3") else {return}
audioSource.load()
player = SCNAudioPlayer(source: audioSource)
node.addAudioPlayer(player)
并像@Andy 所说的那样删除它:
node.enumerateChildNodes { (childNode, _) in
childNode.removeAudioPlayer(player)
childNode.removeFromParentNode()
}
但它仍然无法正常工作。
PS 我正在使用 iOS 12 beta 9、xCode 10 beta 4 和 macOS Mojave 10.14
解决方案:问题不是ARAudio,原因是:SCNAudioPlayer被直接添加到节点,我试图从子节点中删除它。