在SpriteKit

时间:2016-07-11 18:20:31

标签: ios swift audio sprite-kit preload

我正在观看有关在SpriteKit中预加载声音的教程,以避免在第一次播放声音时出现延迟和帧速率下降。这就是他们使用prepareToPlay()方法使用AVAudioPlayer预加载声音的方式:

import AVFoundation

override func didMoveToView(view: SKView) {

    do {
        let sounds = ["sound1", "sound2"]
        for sound in sounds {
              let audioPlayer = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource(sound ofType: "mp3")!))
        audioPlayer.prepareToPlay()
        }
    }
    catch {
    }
}

然后使用像这样的SKAction播放声音:

self.runAction(SKAction.playSoundFileNamed("sound1.mp3", waitForCompletetion: false)

这实际上如何预加载声音?当您执行prepareToPlay()方法时,是否有一些对内存中实际声音文件的引用?似乎我必须使用AVAudioPlayer或audioPlayer变量,因为这是我使用prepareToPlay()方法,而不是仅仅引用SKAction中的声音文件。

0 个答案:

没有答案