你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> SpriteKit:模擬器中播放效果音有延時的解決辦法

SpriteKit:模擬器中播放效果音有延時的解決辦法

編輯:IOS開發綜合

以下代碼在模擬器(Xcode 8.1 + iPhone7)中運行會在第一次播放效果音時有半秒到1秒(甚至更長!)的延時,隨後再播放就沒有延時了。

let sound = SKAction.playSoundFileNamed("explosion.wav", waitForCompletion: false)
run(sound)
player.removeFromParent()

我們這裡播放聲音使用的是SKAction對應的動作.至於為什麼會在第一次播放爆炸音效的時候會有延時,是因為在模擬器中初始化聲音的模擬系統需要一定時間.如果上述代碼放到真機上運行是不會有絲毫延時的.

雖說這個問題無關痛癢,但現在有強迫症的程序猿們也是越來越多了,如何fix這個問題呢?

一種解決辦法是播放背景音樂!

在iOS 9中,SpriteKit提供了一個新的節點:SKAudioNode,可以完美的達到這個目的.由於其播放時已經完成了模擬器聲音系統的初始化,所以以後再次播放音效也就不會再出現任何延時了:

if let musicURL = Bundle.main.url(forResource: "music", withExtension: "m4a"){
        bgMusic = SKAudioNode(url: musicURL)
        addChild(bgMusic)
}

SKAudioNode的一個特點是默認會無限循環播放,而且可以隨意停止播放,我們再也不用繁瑣的AVAudioPlayer播放聲音。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved