Go to file
Thong Nguyen a9bd3557a5 Changed progress to by more accurate by using AudioTime/timelines rather than bytes buffered 2014-01-22 16:52:47 +00:00
ExampleApp Removed iOS7 specific calls. Changed default target to iOS 4.3 2014-01-21 15:48:12 +00:00
StreamingKit Changed progress to by more accurate by using AudioTime/timelines rather than bytes buffered 2014-01-22 16:52:47 +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 Updated README 2014-01-20 23:57:45 +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 (Local, HTTP, Auto Recovering HTTP DataSources are 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. The STKAudioPlayer class manages and renders audio from a queue DataSources. By default STKAudioPlayer will automatically parse URLs and create the appropriate data source internally.



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

[audioPlayer play:@"http://fs.bloom.fm/oss/audiosamples/sample.mp3"];


More

More documentation is available on the project wiki

Authors and Contributors

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