A persistence AVPlayer wrapper for iOS/tvOS with state management, background playback, and plugin support.
ModernAVPlayer is a Swift library that wraps Apple's AVPlayer to add persistence, robust state management, and enhanced control for audio/video playback in iOS and tvOS applications. It simplifies handling network interruptions, background audio, and remote commands while maintaining compatibility with AVFoundation.
iOS and tvOS developers building media-rich applications who need reliable audio/video playback with features like background support, state management, and interruption handling.
Developers choose ModernAVPlayer for its lightweight, modular approach to extending AVPlayer with production-ready features like persistence playback, plugin support, and RxSwift compatibility, reducing boilerplate and complexity.
ModernAVPlayer is a persistence AVPlayer wrapper
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements nine distinct player states like loading, buffering, and playing, providing clear hooks for UI updates and logic as highlighted in the README's state table.
Automatically resumes playback after network interruptions with persistence features, designed for unreliable connections and background audio support.
Supports custom plugins via the PlayerPlugin protocol for adding analytics, tracking, or custom events, allowing modular enhancements.
Offers RxSwift extensions to observe player attributes as Observables, integrating seamlessly with reactive iOS apps, as noted in the RxSwift section.
Admits a persistent bug in versions from 1.5.1 where resume from background mode fails, limiting reliability for audio-centric apps despite claims.
Reactive features require RxSwift, adding an external dependency that may not align with projects using Combine or other frameworks.
Advanced setups demand implementing the PlayerConfiguration protocol, which can be non-trivial and increase initial development time.