Ответ 1
Вы можете получить позиционный звук с помощью source.shouldStream = false
.
У меня возникли проблемы с получением позиционного звука для работы в 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.
Вы можете получить позиционный звук с помощью source.shouldStream = false
.
Как упоминал Jed Soane, и подтвержденный Apple в радаре, проблема заключалась в том, что мой аудиофайл был стерео, а не моно. Только монофонические файлы будут работать для позиционного звука.