在 iOS 应用程序中,使用 swift,我这样做是为了从麦克风获取波形数据:
let BUFSZ = 2400
AVAudioEngine.inputNode.installTap(onBus: 0, bufferSize: BUFSZ, format: AVAudioEngine.inputNode.outputFormat(forBus: 0)) { (buffer: AVAudioPCMBuffer, when: AVAudioTime) in
my callback
}
我发现我能得到的最快
my callback
大约是10hz,并且tap回调中缓冲区的最小结果帧大小是4800,无论我使BUFSZ有多小。
这是预期的吗?它看起来很慢,特别是如果我想制作实时应用程序。 iOS的苹果生态系统中有没有一种方法可以更快地从麦克风获取数据?
点击并不意味着实时访问音频数据。它们位于“侧面”,而不是管道的一部分。当您“很快”需要数据而不是实时应用程序所需的数据时,它们很方便。
如果您想直接集成到管道中,请使用AVAudioSinkNode来消费数据。