Как вы получаете позиционный звук для работы в SceneKit?

У меня возникли проблемы с получением позиционного звука для работы в SceneKit. Начиная с шаблона игры SceneKit, сгенерированного Xcode, я добавил следующий код в конец метода handleTap:

let ship = scnView.scene!.rootNode.childNode(withName: "ship", recursively: true)!  
if let source = SCNAudioSource(fileNamed: "art.scnassets/monoAudioTest.wav")  
{  
    source.volume = 1  
    source.isPositional = true  
    source.shouldStream = true  
    source.loops = true  
    source.load()  
    let player = SCNAudioPlayer(source: source)  
    ship.addAudioPlayer(player)  
}  

ship.runAction(SCNAction.move(to: SCNVector3(0, 0, -10000), duration: 8)) 

Звук воспроизводится, но громкость не уменьшается при удалении струи от камеры. Я пропустил некоторые шаги или сделал некоторые неправильные предположения?

Перекрестная ссылка на Форумы разработчиков Apple.

Ответ 1

Вы можете получить позиционный звук с помощью source.shouldStream = false.

Ответ 2

Как упоминал Jed Soane, и подтвержденный Apple в радаре, проблема заключалась в том, что мой аудиофайл был стерео, а не моно. Только монофонические файлы будут работать для позиционного звука.