在iPhone麦克风中讲话并同时在扬声器中播放该声音

时间:2014-02-10 12:29:27

标签: ios objective-c core-audio

我得到了我的一位客户的要求是我们必须在iPhone麦克风中说一些东西,那声音(我们在麦克风中说话)必须同时来自iPhone扬声器(没有任何延迟。)

示例:在开放式会议中,如果说话者在麦克风中说出某些内容,则声音会立即从扬声器中传出。我必须做同样的事情

我们必须使用Objective-c来完成。自从有一天起我一直在做研究。任何人都可以指导我如何做到这一点。任何想法/建议都会非常感激。

2 个答案:

答案 0 :(得分:1)

无法实现零延迟。大多数iOS设备上的最小音频单元缓冲延迟为5.8毫秒;并且没有更快的公共API连接到麦克风或扬声器。

如果该顺序的延迟是可接受的,则尝试使用RemoteIO音频单元进行音频记录和播放,并使用AVAudioSession API请求最小缓冲时间和大小。

iOS音频单元使用纯C API,因为所有更高级别的Objective C API都较慢,因此不适合低延迟音频。

答案 1 :(得分:0)

如果您在iOS中有使用音频编程的经验并不困难,但如果您从未编写任何类似的内容,请准备阅读大量文档。

使用Audio Units可以实现您的需求。有一些Apple的例子,比如Audio Mixer

简而言之,音频单元是连接在一起创建音频图形的小块。您需要将连接到麦克风的输入音频单元连接到路由到扬声器的输出音频单元。

在这一点上,我(以及任何人)很难就此主题上的任何其他内容说出不在文档中的内容。也许当你取得一些进展时,你的问题会更具体。