Я играю несколько узлов в SceneKit одновременно, я могу их воспроизвести и остановить их. Есть ли способ сыграть их снова? потому что, чтобы остановить их, я использую
node.removeAllAudioPlayers()
и не могу снова добавить аудиоплеер к узлу.
func setupNode() {
if filename != "" {
node = SCNNode()
node.position = SCNVector3Make(0, 0, -1)
sphere.addChildNode(node)
url = URL(string: filename)
frontNode = SCNAudioSource(url: url!)
frontNode.volume = self.volume
frontNode.loops = true
frontNode.isPositional = true
frontNode.shouldStream = false
frontNode.load()
frontPlayer = SCNAudioPlayer(source: frontNode)
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
setupPlayers()
}
func setupPlayers(){
if filename != ""{
node.addAudioPlayer(frontPlayer)
}
}
@objc func handleDismiss() {
NotificationCenter.default.post(name: SceneView.dismiss, object: nil)
if self.filename != "" {
self.node.removeAllAudioPlayers()
}
self.dismiss(animated: true, completion: nil)
}