Go to file
Thong Nguyen 9ed755cda4 Added kAudioFileAAC_ADTSType support 2014-01-20 21:11:00 +00:00
ExampleApp Made the SampleApp support background playback. Updated README to point to wiki for background playbackr 2014-01-20 20:53:55 +00:00
StreamingKit Added kAudioFileAAC_ADTSType support 2014-01-20 21:11:00 +00:00
StreamingKit.xcworkspace Fixed hard coded library search path in ExampleApp project 2014-01-20 19:22:48 +00:00
.gitignore Add xcuserdata to gitignore 2013-03-24 16:25:46 +00:00
LICENSE Adding podspec and LICENSE for Cocoapods integratino 2013-04-08 10:54:23 +00:00
README.md Fix README wiki link 2014-01-20 20:54:34 +00:00
StreamingKit-head.podspec Renamed project to StreamingKit and addded STK classes prefixes. Separated library and sample app into discrete projects inside a workspace. 2014-01-20 15:42:28 +00:00
StreamingKit.podspec Fixed StreamingKit.podspec 2014-01-20 15:54:52 +00:00

README.md

StreamingKit

StreamingKit (formally Audjustable) is an audio streaming library for iOS and OSX. StreamingKit uses CoreAudio to decompress and playback audio whilst providing a clean and simple object-oriented API.

The primary motivation of this project was to decouple the input data sources from the actual player logic in order to allow advanced customizable input handling such as HTTP streaming, encryption/decryption, auto-recovery, dynamic-buffering. Along the way other features such as gapless playback were added.

Main Features

  • Simple OOP API
  • Easy to read source
  • Mostly asynchronous API
  • Buffered and gapless playback
  • Easy to implement audio data sources (HTTP and local file system DataSources provided)
  • Easy to extend DataSource to support adaptive buffering, encryption, etc.
  • Optimised for low CPU/battery usage

Installation

StreamingKit is also available as a Cocoapod and a static lib. You can also simply manually copy all the source files located inside StreamingKit/StreamingKit/* into your project.

Example

There are two main classes. The STKDataSource class which is the abstract base class for the various compressed audio data sources (HTTP, local file are provided). The STKAudioPlayer class manages and renders audio from a queue DataSources.


// Create AudioPlayer

STKAudioPlayer* audioPlayer = [[STKAudioPlayer alloc] init];
audioPlayer.delegate = self;

// Queue on a URL to play. Each queue item has a unique ID (item1) that to identify the related file in delegate callbacks

[audioPlayer setDataSource:[audioPlayer dataSourceFromURL:@"http://fs.bloom.fm/oss/audiosamples/sample.mp3"] withQueueItemId:@"item1"];


More

More documentation is available on the project wiki

Authors and Contributors

Copyright (c) 2012-2014, Thong Nguyen (@tumtumtum)