Awesome Open Source
Awesome Open Source

APlay

A Better(Maybe) iOS Audio Stream & Play Swift Framework

Usage

import APlay
...
let url = URL(string: "path/to/audio/resource")!
let player = APlay()
player.eventPipeline.delegate(to: self, with: { (target, event) in
    //  event handling
})
player.play(url)
...

⚠️⚠️⚠️ Known issue

This project can only run in DEBUG mode,cause optimization mode will pause the decode loop.

if install with CocoaPods, add this block of code in your podfile

post_install do |installer|
 installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            swiftPods = ['APlay']
            if swiftPods.include?(target.name)
                config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] =  '-Onone'
            end
        end
    end
end

Docs

Run ./generate_docs.sh

Features

  • [x] CPU-friendly design to avoid excessive peaks

  • [x] Support seek on WAVE, and FLAC(with seektable)

  • [x] Support all type of audio format(MP3, WAVE, FLAC, etc...) that iOS already support(Not fully tested)

  • [x] Digest(Tested), Basic(not tested) proxy support

  • [x] Multiple protocols supported: ShoutCast, standard HTTP, local files

  • [x] Prepared for tough network conditions: restart on failures,restart on not full content streamed when end of stream

  • [x] Metadata support: ShoutCast metadata, ID3V1, ID3v1.1, ID3v2.2, ID3v2.3, ID3v2.4, FLAC metadata

  • [x] Local disk storing: user can add folders for local resource loading

  • [x] Playback can start immediately without needing to wait for buffering

  • [x] Support cached the stream contents to a file

  • [x] Custom logging module and logging into file supported

  • [x] Open protocols to support customizing. AudioDecoderCompatible, ConfigurationCompatible, LoggerCompatible...

Installation

Carthage github "CodeEagle/APlay"

CocoaPods pod 'APlay'

Todo

  • [ ] Airplay2 support(Maybe not)
  • [ ] AudioEffectUint support

License

License

Contact

Github, Twitter


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
swift (7,627
ios (3,550
framework (1,096
audio (639
proxy (537
network (466
streaming (289
player (239
mp3 (121
flac (40
basic (28
wave (23

Find Open Source By Browsing 7,000 Topics Across 59 Categories