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中的麦克风输入到扬声器输出?的主要内容,如果未能解决你的问题,请参考以下文章