A Swift audio player built on AVAudioEngine for streaming, real-time manipulation, and advanced audio processing on iOS.
SwiftAudioPlayer is an iOS audio player library built on AVAudioEngine that enables streaming, local playback, and real-time audio manipulation. It was created to overcome AVPlayer's limitations for podcasting apps, allowing developers to implement features like speed control, pitch shifting, and audio effects while streaming content. The library bridges the gap between AVAudioEngine's powerful real-time processing and the convenience of streaming audio.
iOS developers building audio-focused applications such as podcast players, music streaming apps, or any app requiring real-time audio effects and streaming capabilities. It is particularly suited for developers who need more control and manipulation options than what AVPlayer offers.
Developers choose SwiftAudioPlayer because it combines the streaming convenience of AVPlayer with the real-time audio manipulation capabilities of AVAudioEngine, all while maintaining low CPU usage (1-2%). Its unified API for both streaming and local playback, along with community-supported features like skip silences and sleep timers, provides a flexible and performant solution for advanced audio applications.
Streaming and realtime audio manipulation with AVAudioEngine
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables live adjustments like speed control up to 10x, pitch shifting, and effects using AVAudioUnit nodes, as shown in the README's reverb and rate slider examples.
Provides a consistent interface for both streaming online audio and playing local files, including radio stream support with configurable bitrate options.
Optimized to use only 1-2% CPU, ensuring minimal performance impact on the rest of the app, a key feature highlighted in the documentation.
Supports offline playback with background downloads, progress tracking, and cellular data controls, though it requires manual AppDelegate setup as noted.
The README explicitly states that only MP3 and WAV files are known to work, which restricts compatibility with other common audio formats.
Real-time effects require finalizing AVAudioUnit nodes before audio initialization, and background downloads need AppDelegate code, adding setup complexity.
Advanced features like skip silences and sleep timers are community-implemented, meaning they may lack official support or comprehensive documentation.