【发布时间】:2015-05-20 10:46:26
【问题描述】:
我正在我的应用中播放来自互联网的音频流,我想显示一个图形均衡器。我用于流式传输的库是FreeStreamer。为了绘制图形均衡器,我使用ZLHistogramAudioPlot。这两个库是唯一符合我需求的库。问题是我无法让他们一起工作。
ZLHistogramAudioPlot 需要一个缓冲区和 bufferSize 才能更新它的视图。这是它的更新方法:
- (void)updateBuffer:(float *)buffer withBufferSize:(UInt32)bufferSize {
[self setSampleData:buffer length:bufferSize];
}
不幸的是,FreeStreamer 库没有提供读取音频输出的方法,因为它向声卡输出。所以,我需要的是一种读取即将通过扬声器播放的音频输出流的方法(而不是来自互联网的字节流,因为它是以块的形式接收的,然后被缓冲,这意味着直方图不会在实时)。
我发现可以使用 Apple 的 CoreAudio 框架中的 AURemoteIO 来执行此操作,但 Apple 的示例项目复杂到无法理解,网上关于使用 AURemoteIO 的示例很少甚至没有。
这是实现这一目标的最佳方式吗?如果是,任何有用的信息/链接将不胜感激。
【问题讨论】:
-
你是如何播放互联网音频流的?
-
我使用FreeStreamer通过url播放流。
-
你能了解 freestreamers 的内部信息吗?还是用 AVPlayer 替换它?
-
我可以了解它的内部结构,但它们非常复杂,我看不出我需要更改哪些内容才能使其正常工作。我可以改用 AVPlayer,但我选择了 FreeStreamer,因为它非常优化并且只使用 1% 的 CPU 来运行。
-
您能指出我将如何使用 AVPlayer 查看输出流吗?
标签: ios audio streaming core-audio equalizer