在迁移到 AudioKit 5.2 时,从 AKSampler() 到 Sampler() 的过渡可能会导致加载音频文件时的延迟。这是因为 Sampler() 在加载音频文件时需要编译其内部的 SFZ 格式音频库。
要解决这个问题,可以在应用程序启动时提前编译 SFZ 音频库,以便 Sampler() 加载音频文件时不需要执行编译操作。这可以通过以下代码示例实现:
// 在应用程序启动时编译 SFZ 音频库 let sampler = Sampler() sampler.buildKeyMap()
// 在应用程序的其他位置加载音频文件 let audioFile = try AKAudioFile(readFileName: "myAudioFile.wav") let player = AKPlayer(audioFile: audioFile) player >>> AudioKit.output
这个例子中,我们提前在应用程序启动时执行了 Sampler() 的 buildKeyMap() 方法,以便编译 SFZ 音频库。之后,我们在应用程序的其他位置加载音频文件时就可以避免延迟问题。