Ios SKAudioNode位置音频似乎不起作用

Ios SKAudioNode位置音频似乎不起作用,ios,swift,audio,sprite-kit,Ios,Swift,Audio,Sprite Kit,我试图实现苹果在SpriteKit中添加的“3d”音频,但声音似乎根本没有定位,即使戴着耳机。这是我的相关代码 播放声音功能: func playTapSound(node: SKNode) { let tapSound = SKAudioNode(fileNamed: "glassNote") tapSound.positional = true tapSound.autoplayLooped = false node.addChild(tapSound)

我试图实现苹果在SpriteKit中添加的“3d”音频,但声音似乎根本没有定位,即使戴着耳机。这是我的相关代码

播放声音功能:

func playTapSound(node: SKNode) {
    let tapSound = SKAudioNode(fileNamed: "glassNote")
    tapSound.positional = true
    tapSound.autoplayLooped = false
    node.addChild(tapSound)
    tapSound.runAction(SKAction.play())
}
游戏场景:

let listenerNode = SKNode()
...
override func didMoveToView(view: SKView) {
    listenerNode.position = view.center
    listener = listenerNode
}
playTapSound
在用户点击游戏块节点时被调用

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    let touchedNode = scene.nodeAtPoint(sceneTouchPoint)
    playTapSound(touchedNode)
}
覆盖函数触摸开始(触摸:设置,withEvent事件:UIEvent?){
让touchedNode=scene.nodeAtPoint(sceneTouchPoint)
播放TapSound(触控节点)
}
我已经检查了所有节点的位置,包括侦听器节点,它们都是正确的。监听器节点位于屏幕中央,游戏基本上是棋盘布局


当我轻触一段音乐时,我真的看不出音频上有任何定位。是不是非常微妙?除了苹果公司说它是SpriteKit的一部分之外,我找不到更多关于它的信息。

结果证明我的错误是在将它设置为侦听器之前没有将我的
listenerNode添加到场景中

侦听器上的文档中

如果指定了非nil值,则该值必须是场景中的节点

游戏场景已更新并验证:

let listenerNode = SKNode()
...
override func didMoveToView(view: SKView) {
    listenerNode.position = view.center
    addChild(listenerNode)
    listener = listenerNode
}

我用
SKAudioNode
实现了一个简单的测试。
侦听器左侧和右侧的音频节点之间的差异非常明显。是的,我可能也应该这样做-minimum example.LMK如果您仍然没有听到差异,我将发布我的测试程序。谢谢。是的,我最近确实用一个空的场景和一个我点击的音频节点来测试它。工作得很好。在我发布的示例中,它的行为就像侦听器位于左下角一样,即使侦听器的位置是屏幕的中心。第1000次阅读这些文件(清醒而不是半睡半醒),我终于明白了这一点。看答案=]谢谢你的帮助,有时候你得聊聊天!有没有一种不用spritkit或scenekit的方法可以做到这一点?