[我发现examples对使用AVAudioNode.installTap
播放音乐进行FFT分析,但我想知道如何做到这一点,但是在文件上离线(一次关闭)。
我试图将1024设置为maximumFrameCount
:
let maxNumberOfFrames: AVAudioFrameCount = 1024;
try engine.enableManualRenderingMode(.offline, format: format, maximumFrameCount: maxNumberOfFrames)
但是渲染量似乎很小(例如,使用内置音频分析功能在JavaScript中获得的渲染量为1200,而不是5000)。>>
我想念什么吗?我是否应该在没有脱机渲染的情况下直接对文件执行FFT?怎么样?
我找到了使用AVAudioNode.installTap在播放音乐时执行FFT分析的示例,但我想知道如何做到这一点,但是离线(一次关闭)文件。我试图将1024设置为maximumFrameCount:let ...
假设您只想执行分析,而不修改声音缓冲区以进行播放,我建议您查看AVAudioSinkNode
。您可能会发现使用engine.mainMixerNode.installBus()
的旧解决方案,但是对于快速FFT而言效率不高,因为它不是实时的。