2011-02-25 43 views
3

是新手为多媒体work.i想通过示例捕获音频并通过network.how传输到一些其他ios设备开始我的工作? .i刚刚通过苹果多媒体指南和讲述的例子,它充满了C++代码,他们正在写入文件,然后启动服务,但我需要缓冲区...请帮助我以正确的方式开始我的工作。在ios实时音频输入和输出流

在此先感谢

回答

9

我只花了很多时间上的实时音频的东西,则可以使用AudioQueue但它有延迟问题围绕100-200ms。

如果你想要做的事,如与T-Pain的应用程序,你必须使用

  • RemoteIO API
  • 音频单元API

他们同样难以实现,所以我只会选择远程IO路径。

源可以在这里找到:

http://atastypixel.com/blog/using-remoteio-audio-unit/

+0

谢谢你的信息。我会检查,并回到你,如果有任何问题... – 2011-02-26 07:22:08

+0

@ madmik3:记录和回放我可以使用AudioQueue? – 2011-02-28 06:56:30

+0

你可以,但它有延迟问题,像我上面描述的,你也可以像提供的链接一样使用RemoteIO音频单元API。它们是在iOS中进行录制和回放的两种不同的API。 – madmik3 2011-02-28 15:14:51

0

我已经upvoted以上的答案,但我想添加一条信息我花了一段时间才能弄清楚。在使用AudioQueue进行录制时,直观的概念是回调按照样本数量的任意数量的规律间隔完成。这个概念是不正确的,AudioQueue似乎收集很长一段时间的样本,然后以非常快的迭代方式交付它们。

在我的情况下,我做了20ms的采样,每个回调接收320个采样。当打印出呼叫的时间戳时,我注意到了一个模式:每2毫秒呼叫一次,然后过了一段时间〜180毫秒。由于我在做VoIP,这就表现出接收端延迟时间增加的症状。切换到远程I/O似乎解决了这个问题。