StreamingKit 0.1.30

StreamingKit 0.1.30

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2018年1月

Thong NguyenStanislav Derpoliuk 维护。



  • 作者
  • Thong Nguyen

StreamingKit (之前称为 Audjustable) 是一个针对 iOS 和 Mac OSX 的音频播放和流媒体库。StreamingKit 使用 CoreAudio 解压缩和播放音频(使用硬件或软件编解码器)的同时,提供了一个干净且简单的面向对象的 API。

该项目的主要动机是将输入数据源与实际的播放逻辑解耦,以便允许高级的自定义输入处理,如基于 HTTP 的渐进式下载流、加密/解密、自动恢复、动态缓冲。StreamingKit 是唯一支持在不同格式音频文件间无缝播放的流媒体和播放库。

主要功能

  • 免费 OSS。
  • 简单 API。
  • 易于阅读的源代码。
  • 精心多线程,提供不会阻塞您 UI 线程也不会耗尽音频缓冲的响应式 API。
  • 所有格式类型之间的缓冲和无缝播放。
  • 易于实现音频数据源(提供本地、HTTP、AutoRecoveringHTTP 数据源)。
  • 易于扩展 DataSource 以支持自适应缓冲、加密等。
  • 针对低 CPU/电池使用进行优化(流媒体时 CPU 使用率为 0% - 1%)。
  • 针对线性数据源进行优化。仅在进行搜索时需要随机访问源。
  • StreamingKit 0.2.0 使用 AudioUnit API 而不是较慢的 AudioQueues API,这允许实时拦截原始 PCM 数据以实现功能,如电平计、均衡器等。
  • 功率计量
  • 内建的均衡器/EQ(iOS 5.0 以上,OSX 10.9 Mavericks 以上),支持在播放时动态更改/启用/禁用 EQ。
  • 提供 iOS 和 Mac OSX 的示例应用。

安装

StreamingKit 可用作 Cocoapod。您也可以简单地将 StreamingKit/StreamingKit/* 目录中的所有源文件复制到您的 Xcode 项目中。

示例

有两个主要类。STKDataSource 类是各种压缩音频数据源的抽象基类。STKAudioPlayer 类管理并渲染来自队列数据源的数据。默认情况下,STKAudioPlayer 将自动解析 URL 并在内部创建合适的数据源。

在 HTTP 上播放 MP3

STKAudioPlayer* audioPlayer = [[STKAudioPlayer alloc] init];

[audioPlayer play:@"http://www.abstractpath.com/files/audiosamples/sample.mp3"];

无缝播放

STKAudioPlayer* audioPlayer = [[STKAudioPlayer alloc] init];

[audioPlayer queue:@"http://www.abstractpath.com/files/audiosamples/sample.mp3"];
[audioPlayer queue:@"http://www.abstractpath.com/files/audiosamples/airplane.aac"];

在播放前拦截 PCM 数据

[audioPlayer appendFrameFilterWithName:@"MyCustomFilter" block:^(UInt32 channelsPerFrame, UInt32 bytesPerFrame, UInt32 frameCount, void* frames)
{
   ...
}];

更多

更多文档可在项目的 维基 上找到。

作者和贡献者

版权所有 (c) 2012-2014,Thong Nguyen (@tumtumtum)