我的iOS游戏使用AVAudioUnitSampler播放包含各种声音效果的AUPreset。该代码基于Gene De Lisa的项目: https://github.com/genedelisa/AVAudioUnitSamplerFrobs加载预设时,我收到有关偶尔崩溃的崩溃报告。实际的崩溃发生在一些内部AudioToolbox代码中(CreateInterstitialPathString(__ CFURL const *)。安装大约20,000次,而我有177次因此问题而崩溃。因此,它相当少见,但很容易修复。发生了吗?
func loadPreset() {
guard let presetURL = Bundle.main.url(forResource: "Sounds/zound", withExtension: "aupreset") else {
fatalError("Failed to load preset.")
}
print("loaded preset \(presetURL)")
do {
try sampler.loadInstrument(at: presetURL)
} catch {
print("error loading preset \(error)")
}
}
它在sampler.loadInstrument行上崩溃。请参阅下文,了解AudioToolbox中发生崩溃的位置。我不确定这是否是AudioToolbox本身的错误,我对此无能为力,或者是否可以做一些避免的事情。