YCVideoPlayer is a modular Android media framework designed to separate playback engines, interface controls, caching, and application-specific business logic. It can switch among multiple playback kernels, including MediaPlayer, ExoPlayer, and IjkPlayer, through a common abstraction layer. The library supports normal playback, list playback, floating windows, short-video feeds, and multiple simultaneous players. Its interface layer is highly customizable because player logic and controller views communicate through independent APIs. Playback features include progress control, aspect ratios, rotation, speed changes, quality switching, network monitoring, and local position recovery. Additional modules cover play-while-caching, M3U8 processing, barrage comments, recording, persistent playback history, and custom rendering surfaces.
Features
- Interchangeable MediaPlayer, ExoPlayer, and IjkPlayer engines
- Customizable player and controller interface layers
- List, floating-window, and short-video playback modes
- Play-while-caching and M3U8 processing
- Playback position persistence and network monitoring
- Speed, quality, aspect ratio, rotation, and gesture controls