Я пытаюсь загрузить песню, смешать ее с фильтрами и сохранить в файл. Однако мне не удается заставить его работать с AudioKit.renderToFile. Я всегда получаю сообщение «нет такого файла» после рендеринга.
Мой код очень похож на этот.
if let fileUrl = Bundle.main.path(forResource: "song", ofType: "wav") {
export()
}
Рендеринг:
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.
Что я здесь делаю не так? Заранее спасибо!
FileManager.default.fileExists(atPath: url)
2) Я загружаю данныеlet data = try Data(contentsOf: URL(fileURLWithPath: url))
3) Я пытаюсь воспроизвестиaudioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: url))
. 1) и 2) работает нормально, поэтому файл создается, но AVAudio не может его загрузить. Я также пробовал init с AVAudio (данные), но он также выдает ошибку. Я даже добавил возможность поделиться файлом данных - и когда я открыл его и перезапустил на Mac - звук хороший (со всеми эффектами). - person Dev_IL   schedule 06.08.2018<AVAudioFormat 0x6000000991e0: 2 ch, 44100 Hz, 'alac' (0x00000003) from 24-bit source, 4096 frames/packet>
Но из документов после рендеринга это выглядит так:<AVAudioFormat 0x604000097890: 2 ch, 44100 Hz, 'alac' (0x00000000) from UNKNOWN source bit depth, 0 frames/packet>
исходный бит НЕИЗВЕСТНО, а количество кадров в пакете 0. Вы знаете, в чем может быть проблема? - person Dev_IL   schedule 07.08.2018