AVAudioPlayer产生滞后播放音效

时间:2017-02-25 21:55:28

标签: ios swift xcode sprite-kit avaudioplayer

我使用Ray Wenderlich在他的Github上提供的SKTAudio库。这是我为播放音效所修改的代码,我每次播放时都会调用该代码:

public func playSoundEffect(_ filename: String) {
    let url = Bundle.main.url(forResource: filename, withExtension: nil)
    if (url == nil) {
        print("Could not find file: \(filename)")
        return
    }
    if !UserDefaults.standard.bool(forKey: "soundOff"){
    var error: NSError? = nil
    do {
        soundEffectPlayer = try AVAudioPlayer(contentsOf: url!)
    } catch let error1 as NSError {
        error = error1
        soundEffectPlayer = nil
    }
    if let player = soundEffectPlayer {
        DispatchQueue.global(qos: .background).async {
            player.numberOfLoops = 0
            player.prepareToPlay()
            player.play()
        }
    } else {
        print("Could not create audio player: \(error!)")
    }
    }
}

我正在使用它,因为这样我可以轻松地静音声音效果,因为这是使用单例类方法。问题是,每当我发出声音效果时,这会产生轻微的延迟。如果我静音游戏,没有滞后。我尝试在后台线程中播放声音,但结果是一样的。

此代码是否有任何简单的更改,使其无法使用LAG?

编辑这不是重复,因为其他问题的其他答案都没有解决我的问题

0 个答案:

没有答案