Ios Swift-如何消除使用AVFoundation录制音频时的延迟

Ios Swift-如何消除使用AVFoundation录制音频时的延迟,ios,swift,audio,stream,avaudioplayer,Ios,Swift,Audio,Stream,Avaudioplayer,我正在使用一个可以录制音频并将其流式传输给其他用户的应用程序。这基本上是一个VoIP电话。我遇到的问题是,流式传输到对等方的音频延迟了约0.5秒。这是很明显的,而且当你们两个试图同时交谈时,会有点恼人 我想知道这是否在AVFoundation的AVAudioEngine中很常见,或者可能与我的设置方式有关 如果这不是AVAudioEngine的已知问题,我可以提供源代码,否则您能否建议以最少延迟录制音频的最佳途径 我也更喜欢一些相当高级的东西,并且与swift 3/3.1兼容。但是,如果没有满足

我正在使用一个可以录制音频并将其流式传输给其他用户的应用程序。这基本上是一个VoIP电话。我遇到的问题是,流式传输到对等方的音频延迟了约0.5秒。这是很明显的,而且当你们两个试图同时交谈时,会有点恼人

我想知道这是否在AVFoundation的AVAudioEngine中很常见,或者可能与我的设置方式有关

如果这不是AVAudioEngine的已知问题,我可以提供源代码,否则您能否建议以最少延迟录制音频的最佳途径

我也更喜欢一些相当高级的东西,并且与swift 3/3.1兼容。但是,如果没有满足这些需求的解决方案,则推荐您认为最适合的工具


谢谢大家!

确保调用“AVAudioEngine.inputNode.installTap”函数时支持的最小缓冲区大小为100毫秒或(sampleRate*0.1)个样本。

确保调用“AVAudioEngine.inputNode.installTap”函数时支持的最小缓冲区大小为100毫秒或(sampleRate*0.1)个样本。

感谢您的输入。因此,我尝试将缓冲区大小设置为100,但是,它似乎默认为4410。这是我的代码:localInput?.installTap(onBus:0,bufferSize:100,format:localInputFormat){(buffer,when)->在中无效,但当我打印出buffer.frameCapacity和buffer.frameLength时,它们都是4410…bufferSize参数-示例中音频缓冲区的首选大小(!)。如果采样器为44100,则支持的最小缓冲区大小将为4410。将“100”替换为“4410”。默认情况下,我的缓冲区大小为4410。因此,很遗憾,这不起作用。感谢您的输入。因此,我尝试将缓冲区大小设置为100,但它似乎默认为4410。这是我的代码:localInput?.installTap(onBus:0,bufferSize:100,format:LocaliInputFormat){(buffer,when)->在中无效,但当我打印buffer.frameCapacity和buffer.frameLength时,它们都是4410…bufferSize参数-示例中音频缓冲区的首选大小(!)。如果sampleRate是44100,则支持的最小缓冲区大小将是4410。将“100”替换为“4410”。默认情况下,我的缓冲区大小为4410。因此,不幸的是,这不起作用。