无法在 SpriteKit 中获取 skAudioNode 的 3D 音频效果

Cannot get the 3D Audio effect for skAudioNode in SpriteKit

我正在试用 WWDC 2015 中宣布的新 skAudioNode。我是 swift 和 spriteKit 的新手。

首先,在 sks 编辑器中,我将一个音频对象拖到场景中,并命名为 audioNodeRed,它附加到一个视觉上红色的 sprikit 节点。我在编辑器中给这个节点指定了一个wav文件link。

在GameScene.swift中,我写道:

let redNode:SKAudioNode = childNodeWithName("//audioNodeRed") as! SKAudioNode;
let actionPlaySound = SKAction.play()
redNode.runAction(actionPlaySound)

最后一行将因错误而崩溃:由于未捕获的异常 'com.apple.coreaudio.avfaudio' 而终止应用程序,原因:'required condition is false: _engine->IsRunning()'

我通过指定要通过代码操作的 wav 文件来修复它(xcode 错误?)

let actionPlaySound =SKAction.playSoundFileNamed("Crackling_Fireplace.wav", waitForCompletion: false)

好的,现在我可以听到声音了,但是如果我移动节点没有3d音效,我已经指定了场景的听者位置(仍然在GameScene.swift):

//sprite is a skSpriteNode in the center of the screen
self.listener = sprite

另一件事是我无法访问 Apple documentation 中指定的 avaudioengine 属性。例如

  redAudioNode.avAudioNode //SKAudioNode does not have a member named "avAudioNode"
  myScene.audioEngine   //SKScene does not have a member named "audioEngine"

我正在使用 XCode 7 beta version4。我想知道我是否在这里做错了什么,或者原因是 ios9 框架仍处于测试阶段。感谢您的帮助。

------------添加----------------

好的,进入后台再回到应用程序,我得到了 3d 音频效果。

好的,我自己解决了问题,显然是sks编辑器出了问题。

如果我在代码中而不是在编辑器中执行此操作,我会听到 3D 音效。

 audioNodeRed.positional = true
 audioNodeRed.autoplayLooped = true