Platform Support
Better Player strives to provide a consistent and powerful playback experience across all supported platforms. However, due to underlying native video engine limitations, not all features are equally available across Android, iOS, and Web.
The following matrix details the current feature support for Better Player across platforms:
| Feature | Android | iOS | Web |
|---|---|---|---|
| Basic Playback (MP4/WebM) | ✓ | ✓ | ✓ |
| HLS (HTTP Live Streaming) | ✓ | ✓ | ✓ |
| DASH (Dynamic Adaptive Streaming) | ✓ | x | ✓ |
| Smooth Streaming | ✓ | x | x |
| Subtitles (SRT/WebVTT) | ✓ | ✓ | ✓ |
| Audio Track Selection | ✓ | ✓ | ✓ |
| Picture in Picture (PiP) | ✓ | ✓ | ✓ |
| DRM (Widevine) | ✓ | x | ✓ |
| DRM (FairPlay) | x | ✓ | ✓ |
| DRM (ClearKey) | ✓ | ✓ | ✓ |
| Caching (Normal) | ✓ | ✓ | x |
| Pre-caching & Stop Caching | ✓ | ✓ | x |
| Background Audio / Notifications | ✓ | ✓ | x |
| Mix Audio with Others | ✓ | ✓ | x |
| Auto Frame Rate (AFR) | ✓ | x | x |
Platform Specific Details
Android
- Android playback is powered by ExoPlayer.
- Full support for almost all streaming formats and advanced DRM (Widevine, ClearKey, PlayReady).
- Robust caching capabilities through native ExoPlayer cache systems.
- Support for Auto Frame Rate (AFR) matching via
_betterPlayerController.setAndroidMatchFrameRate(true), which seamlessly matches the device display refresh rate to the video's frame rate.
iOS
- iOS playback is powered by native
AVPlayer. - Native HLS support, but lacks DASH and Smooth Streaming support.
- FairPlay DRM is fully supported, whereas Widevine is not natively supported by Apple devices.
Web
- Web playback is powered by the open-source Shaka Player library, seamlessly bridging Flutter to advanced web playback capabilities.
- To use Better Player on the web, you must include the Shaka Player library in your
web/index.htmlfile (see the Installation page). - Background notifications and fine-grained caching (
preCache) are not supported on standard web browsers.