【问题标题】:Recording Radio Streaming in IOS在 IOS 中录制广播流
【发布时间】:2012-04-25 10:36:51
【问题描述】:

我正在开发广播应用程序,我想在点击录制按钮时录制实时广播流。它应该只录制广播流的声音。目前我正在从 Mike 录制,但这不是我想要的方式,因为它还捕获了周围/背景的声音。我确实读过几篇文章,但它们都是关于 AVaudioRecorder 的。我已经使用 wunderradio api 从 url 播放广播。我在他们的 api 中没有任何方法/函数可以记录来自 url 的音频。我只想从该 url 录制缓冲的音频,以便稍后播放该录制的文件。

任何帮助将不胜感激。

【问题讨论】:

  • Wunderradio 从什么时候开始提供 API 的?
  • 请查看以下链接,wunderradio.com/code.html
  • 是的,他们必须开源代码才能符合 LGPL,因为他们使用的是 Lame 和 FFmpeg,但这并不意味着他们提供了 API ....
  • 是的,我同意。任何解决方案都会非常感谢上述一个:-)

标签: iphone objective-c ios5 streaming buffering


【解决方案1】:

使用麦克风录制音频播放确实不是正确的方法。如果您使用 AudioQueue 服务进行音频播放,您可以使用 AudioFileWritePackets 函数将音频数据写入文件。

如果您以这种方式实现录制,则可以将音频文件写入流式传输的格式。因此,可以将 mp3 音频流作为 mp3 文件写入磁盘,因为您正在使用 AudioFileWritePackets 函数编写编码的音频包。

为了更好地理解这一切应该如何实现,您可以查看 Apple 的 SpeakHere 示例代码。 SpeakHere 项目从麦克风录制,但它仍然是了解 AudioFileWritePackets 函数如何工作的一个很好的例子。在您的情况下,您需要在 AudioQueue 的输出回调中使用 AudioFileWritePackets 函数。这是缓冲区播放完毕时调用的回调。所以最好把已经播放的音频缓冲区数据写入文件。

【讨论】:

  • 我正在寻找类似的解决方案,但之前从未使用过 AudioQueue 服务。您知道我可以查看执行您建议的任何代码示例吗?
猜你喜欢
  • 2010-10-19
  • 2014-11-03
  • 2012-07-21
  • 2012-11-02
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 2011-07-19
相关资源
最近更新 更多