我正在试验新的skAudioNode,它是在2015年世界互联网大会上宣布的。我是斯威夫特和spriteKit的新手。
首先,在sks编辑器中,我将一个音频对象拖到场景中,并给出一个名为audioNodeRed的名称,该名称附加到一个可视化的红色sprikit节点上。我在编辑器中指定到此节点的wav文件链接。
在GameScene.swift中,我写道:
let redNode:SKAudioNode = childNodeWithName("//audioNodeRed") as! SKAudioNode;
let actionPlaySound = SKAction.play()
redNode.runAction(actionPlaySound)最后一行将出现错误:终止应用程序,原因是uncaught‘com.apple.coreaudo.avf音频’,原因是:“所需条件为false:_engine->IsRunning()”
我通过指定wav文件来修正它,使其按代码操作(xcode bug?)
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另一件事是,我无法访问苹果文档中指定的avaudioengine属性。例如:
redAudioNode.avAudioNode //SKAudioNode does not have a member named "avAudioNode"
myScene.audioEngine //SKScene does not have a member named "audioEngine"我正在使用XCode 7测试版version4。我想知道我在这里是否做错了什么,或者原因是ios9框架仍然处于测试版。谢谢你的帮助。
好的,我得到了3d音频效果,通过进入背景,然后再回到应用程序。
发布于 2015-07-30 13:11:18
好的,我自己解决了问题,很明显sks编辑器有问题。
如果我在代码中而不是在编辑器中这样做,我会听到3D声音效果。
audioNodeRed.positional = true
audioNodeRed.autoplayLooped = truehttps://stackoverflow.com/questions/31699219
复制相似问题