如何解决使用 AudioKit 5 导出过滤后的音频
我一直找不到任何示例来说明如何导出您通过 AudioKit 的 5 个过滤器传输的音频。
我想给音频添加一些效果(如混响等)然后导出过滤后的音频
这是我的尝试:
// load empty file to write
let docs = FileManager.default.urls(for: .documentDirectory,in: .userDomainMask).first!
let dstURL:URL = docs.appendingPathComponent("rendred.caf")
var audioFile:AVAudioFile!
do {
audioFile = try AVAudioFile(forReading: dstURL)
} catch {
Log("Could not load file")
}
// duration of audio after add some effects
let duration = self.conductor.player.duration
let rendredTime = Double(duration)
// using AudioEngine() to export mixed audio but it's not work <----?
do {
try? self.conductor.engine.renderToFile(audioFile,duration: rendredTime,prerender: {
self.conductor.player.play()
})
}
我不确定 renderToFile()
函数是如何工作的
解决方法
如果没有您对 Mark Jeschke 所问的问题的回答,您很难回答,但总的来说:
您可以加载音频文件,创建新的混响(例如 CostelloReverb)。 将加载的音频作为节点加入混响。 将混响作为输出(同样 - 这取决于您想要做什么)到 AudioEngine 输出。
如果您想与播放混合,您可以使用 DryWetMixer。
一些通用示例:
import Foundation
import AudioKit
import SoundpipeAudioKit
class AudioProcessing {
let audioFile:(choose the way you want to load/play)
let playback :(same)
let reverb:CostelloReverb
let dryWetMix:DryWetMixer
let engine = AudioEngine()
init() {
(init the audioFile and playback here)
reverb = CostelloReverb(audioFile)
dryWetMix = DryWetMixer(playback,reverb)
engine.output = dryWetMix
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。