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

Posted

技术标签:

【中文标题】iOS中的麦克风输入到扬声器输出?【英文标题】:Microphone input to speakers output in iOS? 【发布时间】:2015-10-25 23:35:37 【问题描述】:

我怎样才能在扬声器上听到麦克风录制但现场直播的相同内容?

我想做的是戴上耳机并听到同样的声音,但我只会控制音量。

我知道如何录制音频然后播放它,但我希望它是实时的,我不需要保存音频,只需同时听到相同的内容。

【问题讨论】:

即在输入时直接播放输入。 我只看到 AurioTouch 做到了这一点,但它也做得更多,所以我不太了解它,因为我不知道我需要从那个大项目中得到什么 【参考方案1】:

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

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

【讨论】:

被低估的答案,这段代码开箱即用!我用这个很好地替换了很多AVCaptureSession 缓冲流魔法。 在创建这个现场音频解决方案方面提供了很多帮助:***.com/questions/71006555/… 太棒了,很高兴这能有所帮助【参考方案2】:

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

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

【讨论】:

你知道我在哪里可以找到如何快速使用 RemoteIO Audio Unit API 吗?或者至少使用 obj-c :)【参考方案3】:

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

【讨论】:

以上是关于iOS中的麦克风输入到扬声器输出?的主要内容,如果未能解决你的问题,请参考以下文章

在Android上无需电缆即可将扬声器输出到麦克风输入?

NAudio 记录和保存麦克风输入和扬声器输出

iOS输入麦克风输出蓝牙设备

仅从 iphone 扬声器(不包括麦克风)录制音频输出

C# 中的麦克风到扬声器音频流

iOS 是不是会降低使用麦克风的应用程序的扬声器音量?