Skip to content

Repository files navigation

APlay

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

Usage

import APlay
...leturl=URL(string:"path/to/audio/resource")!
letplayer=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_installdo |installer|
installer.pods_project.targets.eachdo |target|
target.build_configurations.eachdo |config|
swiftPods=['APlay']ifswiftPods.include?(target.name)config.build_settings['SWIFT_OPTIMIZATION_LEVEL']='-Onone'endendendend

Docs

Run ./generate_docs.sh

Features

  • CPU-friendly design to avoid excessive peaks

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

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

  • Digest(Tested), Basic(not tested) proxy support

  • Multiple protocols supported: ShoutCast, standard HTTP, local files

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

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

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

  • Playback can start immediately without needing to wait for buffering

  • Support cached the stream contents to a file

  • Custom logging module and logging into file supported

  • Open protocols to support customizing. AudioDecoderCompatible, ConfigurationCompatible, LoggerCompatible...

Installation

Carthagegithub "CodeEagle/APlay"

CocoaPodspod 'APlay'

Todo

  • Airplay2 support(Maybe not)
  • AudioEffectUint support

Sponsor

Powered by DartNode

License

License

Contact

Github, Twitter

Releases

Packages

Contributors

Languages