ios - 使用 AudioKit 导出过滤后的音频
问题描述
我一直找不到任何示例来说明如何导出通过 AudioKit 过滤器传输的音频。
我找到了一个如何使用对象exportAsynchronously
上的方法简单地导出音频的示例AKAudioFile
,但是(我认为这将是 AudioKit 的一个非常常见的用例)您实际使用 AudioKit 的过滤器或其他效果处理的音频呢?
在另一篇文章中,有使用该renderToFile()
方法的参考,但我已经尝试过了,当我播放音频时,它只是原始源音频而不是过滤后的音频。
到目前为止,我正在设置 AudioKit 文件和带有过滤器的播放器:
AKPlayer = try AKAudioPlayer(file: fileFromTranscodedVideoOutputPath)
// track frequencies from player
tracker = AKFrequencyTracker(AKPlayer)
AKPlayer.connect(to: mixer.inputNode)
// piping through to tracker for analysis data from player
AudioKit.output = tracker
// SETUP EQs
filterBand1 = AKEqualizerFilter(AKPlayer, centerFrequency: 64, bandwidth: 70.8, gain: 1.0)
filterBand2 = AKEqualizerFilter(filterBand1, centerFrequency: 125, bandwidth: 141, gain: 1.0)
let outputMixer = AKMixer(filterBand8)
AudioKit.output = outputMixer
AudioKit.start()
/* then I present the player w/EQ sliders and everything works as-is, but when I try to render or export the audio that has been filtered in the following way, and then play it back, I only ever end up with the original source audio sound that is unaltered */
// this func initializes an AVAudio file
let audioFile = createAVAudioFile()
// now trying to render to file
try AudioKit.renderToFile(audioFile, duration: 10.0, prerender: {self.AKPlayer.play()})
我在这里想念什么?
解决方案
推荐阅读
- gruntjs - 所有 grunt 任务的默认任务选项
- python - 多个条件然后创建一列
- sublimetext3 - 如何使用 Emmet 在 Sublime 中添加非 html 语法片段?
- api - 如何为特定的 API 控制器指定错误处理程序?
- python - 访问主程序中正在修改的线程中的变量
- google-chrome - 清单 v3 中的 chrome.runtime 缺少属性
- azure - Terraform azurerm role definition with email address
- git - Is it possible to reference Git objects from a commit without adding them to the tree-object filesystem?
- laravel - Modify Breeze template in Laravel
- javascript - Onclick only works on second click. How to get it to work on first click