麦克风输入到iOS的扬声器输出?

时间:2015-10-25 23:35:37

标签: ios swift audio avaudioplayer core-audio

我怎么能在扬声器上听到麦克风记录但活着的东西?

我想要做的就是打开耳机并听到同样的声音,但我会管理音量。

我知道如何录制音频然后播放但是我希望它能够直播,我不需要保存音频,只需要同时听到同样的声音。

3 个答案:

答案 0 :(得分:0)

您无法获得实时输出,因为iOS音频系统可以缓冲音频样本的输入和输出。但是,在应用程序的AVAudioSession初始化选项中请求非常短(5 mS)的音频缓冲区后,通常可以使用RemoteIO Audio Unit API获得低于12毫秒的延迟。

如果您想要最小延迟(尽可能接近实时),那么您必须了解并使用稍微复杂一些的低级音频API,因为简单的高级API速度较慢(通常是由于更长的缓冲)。 / p>

答案 1 :(得分:0)

我知道这个问题很古老,但是最近我尝试这样做,我发现最简单的方法是使用AVAudioEngine。实例化后,它具有一个代表麦克风的inputNode属性和一个代表扬声器的outputNode属性。您可以像这样将输入节点连接到输出节点:

engine.connect(engine.inputNode, to: engine.outputNode, format: engine.inputNode.format(forBus: 0))
engine.start()

答案 2 :(得分:0)

如果您只想要一个可以执行此操作的现成应用,请下载免费的 Speech Jammer 应用并禁用音频延迟。