Я пытаюсь загрузить песню, смешать ее с фильтрами и сохранить в файл. Однако мне не удается заставить его работать с AudioKit.renderToFile. Я всегда получаю "нет такого файла" после рендеринга.
Мой код очень похож на этот .
if let fileUrl = Bundle.main.path(forResource: "song", ofType: "wav") {
export()
}
Rendering:
func export(songUrl: String) {
do {
if let url = URL(string: songUrl) {
if let file = try? AKAudioFile(forReading: url) {
player = try AKAudioPlayer(file: file)
}
}
} catch {
fatalError("PLAYER URL ERROR")
}
mainMixer = AKMixer(player)
AudioKit.output = mainMixer
do {
try AudioKit.start()
self.outputFile = try AVAudioFile(forWriting: exportURL, settings: player.audioFile.fileFormat.settings)
try AudioKit.renderToFile(self.outputFile, duration: self.player.duration, prerender: {
self.player.play()
})
} catch {
fatalError("Unexpected error: \(error).")
}
self.showFileSize()
}
URL экспорта:
let exportURL: URL = {
let documentsURL = FileManager.default.temporaryDirectory
return documentsURL.appendingPathComponent("exported_song.wav")
}()
showFileSize использует FileManager.default.attributesOfItem (atPath: filePath), но здесь выдается исключение:
The file “exported_song.wav” couldn’t be opened because there is no such file.
Что я здесь не так делаю?
Заранее спасибо!