从iOS流式传输音频

时间:2011-05-29 04:49:55

标签: iphone audio

我如何将音频从iOS设备流式传输到其他设备(如Mac或其他iOS设备)?我只能在谷歌上找到像AirPlay这样的解决方案,而不是在你自己的应用程序中如何做到这一点。我认为你必须通过某种服务器。

要明确,我不打算复制AirPlay。我希望做非常基本的VoIP。

5 个答案:

答案 0 :(得分:2)

原始VOIP使用案例:

步骤1.使用压缩编码器使用AV Foundation录制音频 步骤2.将数据包流式传输到另一个设备(即RTP)
第3步。解码&播放远程设备上的音频数据包

更复杂的VOIP用例包括发现用户,建立连接。

这些链接可能会帮助您入门

http://developer.apple.com/library/ios/#DOCUMENTATION/AudioVideo/Conceptual/MultimediaPG/UsingAudio/UsingAudio.html

http://en.wikipedia.org/wiki/Real-time_Transport_Protocol

答案 1 :(得分:2)

编辑 - 2011年8月12日

我没有意识到你想通过音频从一个设备到另一个设备。您始终可以使用CFNetwork并简单地插入设备。诀窍是检测它。了解bonjour服务。您仍然需要使用AudioToolbox将音频处理成缓冲区,并通过bonjour或socket。

结束修改

@greg AVFoundation为您提供了像AVAudioRecorder这样的东西,但它并不能让您像他想要的那样流出数据包。

我来看看AudioToolbox。如果使用AudioQueue,则可以指定流式传输的格式。然后,添加一个输入队列回调,您就可以访问录制音频的原始数据包。

看看iLBC的编解码器。它足够小,可以让你做超过3克的一切。

这是关于AudioQueue编程的一个很棒的苹果参考: http://developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/AudioQueueProgrammingGuide/AQRecord/RecordingAudio.html

祝你好运!

答案 2 :(得分:0)

您说您不想使用AirPlay。要做到这一点,您需要在iOS设备上运行自己的服务器。这当然是可能的,并且有些应用程序可以运行各种服务器来执行各种任务。但是,我对这个主题并不是很熟悉,看来你在网上没有太多关于这方面的信息是正确的。

那就是说,我建议看看Darwin Streaming Server。它看起来有点旧,但它是开源的,可能对你有用。

答案 3 :(得分:0)

我认为一个好的开始是理解CoreAudio的旧示例: SpeakHere(它使用低级C API记录和播放声音.CoreAudio是AVFoundation的优势之一)

正如@DexterW所说,你需要了解AudioQueue等等。

之后,您可以开始考虑将服务器/数据包传输到:)

希望它有所帮助。

答案 4 :(得分:0)

你会这样做:

https://drive.google.com/open?id=1tKgVl0X92SYvgpvbljRzilXNQ6iBcjqM

在两台iOS设备上运行此应用;它会自动将两个设备连接到您的网络开始在它们之间传输音频。

该界面由单个UI组件组成,具体而言,是记录应用程序事件的文本字段。它可以让您轻松理解应用程序的架构。

enter image description here

您需要Xcode 9和iOS 11的最新测试版本。

如果您有任何问题,请与我们联系。

相关问题