Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用iPhone麦克风通话,同时在扬声器中播放该声音_Ios_Objective C_Core Audio - Fatal编程技术网

Ios 使用iPhone麦克风通话,同时在扬声器中播放该声音

Ios 使用iPhone麦克风通话,同时在扬声器中播放该声音,ios,objective-c,core-audio,Ios,Objective C,Core Audio,我从我的一个客户那里得到一个要求,那就是我们必须在iPhone麦克风中说些什么,而且声音(我们在麦克风中说话)必须同时来自iPhone扬声器(没有任何延迟) 例如:在公开会议上,如果演讲者在麦克风中说了什么,那么声音会毫不延迟地从演讲者中发出。我必须做同样的事情 我们必须使用Objective-c来完成。从上一天起我就一直在做研究。任何人都可以指导我怎么做。任何想法/建议都将不胜感激。如果您有在iOS中编程音频的经验,这并不难,但是如果您从未编程过类似的内容,请准备阅读大量文档 你所需要的可以通

我从我的一个客户那里得到一个要求,那就是我们必须在iPhone麦克风中说些什么,而且声音(我们在麦克风中说话)必须同时来自iPhone扬声器(没有任何延迟)

例如:在公开会议上,如果演讲者在麦克风中说了什么,那么声音会毫不延迟地从演讲者中发出。我必须做同样的事情


我们必须使用
Objective-c
来完成。从上一天起我就一直在做研究。任何人都可以指导我怎么做。任何想法/建议都将不胜感激。

如果您有在iOS中编程音频的经验,这并不难,但是如果您从未编程过类似的内容,请准备阅读大量文档

你所需要的可以通过使用来实现。有一些苹果的例子,比如

简而言之,音频单元是连接在一起以创建音频图的小部件。您需要将连接至麦克风的输入音频单元连接至连接至扬声器的输出音频单元


在这一点上,我(和任何人)都很难在这个问题上说任何文档中没有的东西。也许当你取得一些进展时,你的问题会更具体。

零延迟是不可能的。大多数iOS设备上5.8毫秒内的最小音频单元缓冲延迟;而且没有更快的公共API连接到麦克风或扬声器

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


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

对于任何被否决的人,我可以得到一些反馈吗?您是否正确阅读了问题?用户要求现场声音。音频混音器仅适用于录制的文件,不适用于现场音频,用户要求的是未保存的音频文件。他编辑了这本书question@Tendulkar音频混音器是一个使用两个录音的示例,但这只是一个如何使用音频单元的示例,不要期望一个示例能完全满足您的需要。如果在混音器中切换输入音频单元的其中一个录音,则有一个混音器带有来自麦克风的输入!我认为这个答案过于宽泛和高层次,很难相信这是可以接受的。更详细的回答应该解释,正如hotpaw2在其回答中所述,0延迟是不可能的。较小的延迟是合理的。该方法应讨论使用一种称为远程io的特定音频单元。解决这个问题的方法是使用一个远程io单元,并将麦克风样本(远程io输入总线1)直接提供给扬声器(远程io输出总线0)。有人能告诉我为什么被否决吗?@Ermaidu和任何感兴趣的人:最近我被,他们出于最愚蠢的原因否决了投票,而不是出于建设性的考虑和关心自己的事情。只是为了记录在案,我没有否决投票。@CGRasterMouse对不起,这不是针对个人的,当然也不是针对你或任何被否决的选民。只是我觉得有时候用户没有意识到帮助在线用户需要付出很大的努力,比如今天,这家伙在我下面的回答中的评论,他可能从未使用过音频设备,也可能从未编译和研究过我建议的示例,然而,他敢于做出惊人的批评。我同意这是SO的一个弱功能。否决一个问题可能会像否决一个答案一样失去代表性。或者在否决投票时,必须发表评论。