Я создал простой .aupreset с помощью программного обеспечения Apple AULab, которое является пресетом реверберации (я хочу добавить его в аудиофайл, чтобы у аудиофайла был уровень реверберации).При попытке загрузить пресет в AVAudioUnit, я всегда получаю эту ошибку:
Ошибка домена = Foundation._GenericObjCError Code = 0 "(null)"
Если яиспользовать попробовать!это аварийное сообщение:
Тема 1: Неустранимая ошибка: 'попробуй!'выражение неожиданно вызвало ошибку: Foundation._GenericObjCError.nilError
Строка кода, вызывающая ошибку:
try customPresetUnit.loadPreset(at: presetURL)
Вот весь метод:
let player = AVAudioPlayerNode()
let engine = AVAudioEngine()
let reverb = AVAudioUnitReverb()
let customPresetUnit = AVAudioUnit()
func addPresetToIntro(){
guard let introductionAudio = Bundle.main.url(forResource: "Introduction", withExtension: "m4a") else{fatalError("Introduction file not found")}
guard let presetURL = Bundle.main.url(forResource: "FirstPreset", withExtension: "aupreset") else{fatalError("preset not found")}
do {
try customPresetUnit.loadPreset(at: presetURL)
}
catch {
print((error as NSError))
return
}
let audioFile = try! AVAudioFile(forReading: introductionAudio)
engine.attach(player)
engine.attach(customPresetUnit)
engine.connect(player, to: customPresetUnit, format: nil)
engine.connect(customPresetUnit, to: engine.mainMixerNode, format: nil)
player.scheduleFile(audioFile, at: nil, completionHandler: nil)
try! engine.start()
player.play()
}
Любые идеи очень ценятся!
Примечание. Да, я знаю, что могу создать эффект реверберации с помощью AVAudioUnitReverb, однако я хочу, чтобы он работал с файлами .aupreset, когда я создаю более сложные.