2017-01-09 46 views
10

我有麻煩定位音頻在SceneKit工作。與由Xcode中生成的I已經添加以下代碼到handleTap方法結束時的遊戲SceneKit模板開始:你如何獲得位置音頻在SceneKit中工作?

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 Developer Forums

+1

我剛試過,但左到右的移動,而不是近到遠。我還使用了MP3而不是WAV。我也沒有聽到任何位置變化。我嘗試切換到SCNAction.playAction,但沒有任何區別。 –

+0

我在使用SpriteKit中的定位音頻時曾遇到類似的@HalMueller體驗。 – Confused

回答

3

你應該能夠得到定位音頻與source.shouldStream = false

+0

這似乎完全荒謬,應該工作,但它修復了我的問題。你認爲這是一個錯誤還是記錄不完整? –

+0

這個解決方案對我來說不起作用,我試過了我能想到的所有配置,當節點離開時,音量永遠不會改變。我也嘗試過各種音頻格式,包括.aif,.mp3和.wav,沒有區別。我在另一篇文章中看到.aif曾爲某人工作,但對我來說卻沒有運氣。也許它與使用的編碼有關。 –

+1

@AdamEisfeld您的音頻文件是否爲單聲道?如果音頻是立體聲,則SceneKit將不會放置它。 –

6

正如傑德索恩在雷達中提到,和蘋果證實,這個問題是我的音頻文件是立體聲,而不是單聲道。只有單聲道音頻文件可用於定位音頻。