Ios 第一声被延迟

Ios 第一声被延迟,ios,audiotoolbox,Ios,Audiotoolbox,我使用下面的代码来播放一个简单的点击按钮的声音 import AudioToolbox private var clickSound: SystemSoundID! func createSound(soundName: String) -> SystemSoundID { var id: SystemSoundID = 0 let url = CFBundleCopyResourceURL(CFBundleGetMainBundle(), soundName, "w

我使用下面的代码来播放一个简单的点击按钮的声音

import AudioToolbox

private var clickSound: SystemSoundID!

func createSound(soundName: String) -> SystemSoundID {
    var id: SystemSoundID = 0

    let url = CFBundleCopyResourceURL(CFBundleGetMainBundle(), soundName, "wav", nil)
    AudioServicesCreateSystemSoundID(url, &id)

    return id
}

    //Load click sound.
    clickSound = createSound("ButtonClick")
这是可行的,但我第一次按按钮时,声音有点延迟。所有随后的按钮点击都会立即播放声音。这让我相信,声音只有在第一次播放时才会加载

有没有办法消除这种延迟?

这是一个已知的问题

您可以在启动期间播放一小段无声的声音。这样,声音例程将被加载,并准备在您需要时执行

AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"SILENCE" ofType:@"WAV"]], &alarm); 
AudioServicesPlaySystemSound (alarm); 

您需要在应用程序中播放多少种不同的声音?谢谢。这正是我所做的,而且效果很好。