AudioKit renderToFile не работает - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь загрузить песню, смешать ее с фильтрами и сохранить в файл. Однако мне не удается заставить его работать с 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.

Что я здесь не так делаю? Заранее спасибо!

...