我使用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?
编辑:这不是重复,因为其他问题的其他答案都没有解决我的问题。