All Projects → tyrone-sudeium → EBAudioKit

tyrone-sudeium / EBAudioKit

Licence: MIT license
Streaming, caching, queueing, backgroundable, Opus-based audio player for iOS.

Programming Languages

objective c
16641 projects - #2 most used programming language
ruby
36898 projects - #4 most used programming language

EBAudioKit

Ugh, never mind. This is discontinued. Use OrigamiEngine instead.

Building the next BandCamp? Prettier than Pandora? Sexier than Spotify? Groovier than GrooveShark? You need EBAudioKit! EBAudioKit is a streaming, caching, queueing, backgroundable, Opus-based audio player for iOS.

It was built because AVFoundation simply has no mechanism whatsoever to write a track that's currently streaming to disk, so that it can be played again later without an internet connection. This level of contempt for a user's internet connection was offensive to me. This problem has been solved by many vendors already, but none of them had the decency to release their audio players as open source. You guys used to be cool.

Design Goals

First and foremost, EBAudioKit is designed to be a simple API, providing useful functionality but with a very narrow focus. It will not replace VLCKit or AVFoundation. Required features for 1.0 include:

  • [x] HTTP and HTTPS streaming.
  • [x] Streaming .opus files and playing back Opus-encoded content.
  • [ ] Automatically switching to a local file if there is one.
  • [x] Seeking.
  • [ ] Player item queueing (like AVQueuePlayer, except not shit).
  • [x] Robust track caching, including partial cache.
  • [ ] Track caching must be manageable by the API consumer.

Things I would like to include:

  • [ ] ReplayGain support.
  • [ ] Entity Tags.
  • [ ] MP3, AAC, Vorbis support. These are tricky because seeking.
  • [ ] OS X support.

Things I will never include:

  • A plugin system.
  • Video support.
  • Cross-platform support. This library is for the Apple ecosystem. If you need something cross-platform have a look at libVLC.

Why Opus?

If you care about data usage, there is simply no other codec that comes close to the efficiency of Opus. As an Australian with extremely expensive bandwidth costs, I want to reduce as much as possible unnecessary traffic over the wire, and so should you! Every byte counts, and reducing data usage helps reduce server costs and will reduce your user's data usage on their limited data plan.

Usage

Until I can be bothered putting it in the master repo, you'll need to add my spec repo to CocoaPods before you can use it.

$ pod repo add xiph-ios-podspecs https://github.com/tyrone-sudeium/xiph-ios-podspecs.git

Add it to your Podfile

pod 'EBAudioKit'
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].