Platform parity matrix
The three SDKs implement one shared API — same names, same semantics, same behavior on every platform. Current status, feature by feature:
| Feature | Android | iOS | Web |
|---|---|---|---|
| Transport / state / listeners | ✅ | ✅ | ✅ same names |
| Analytics events (11) | ✅ | ✅ | ✅ same shapes |
| Error taxonomy (2000–9000) | ✅ | ✅ | ✅ same codes |
| HLS + ABR qualities | ✅ | ✅ | ✅ hls.js / native |
| DASH | ✅ | — | ⏳ later |
| Live & DVR | ✅ | ✅ | ✅ |
| Subtitles (embedded + sideloaded) | ✅ | ✅ | ✅ |
| Multi-language audio | ✅ | ✅ | ✅ |
| DRM | Widevine · PlayReady | FairPlay | Widevine · PlayReady · FairPlay |
| DRM token providers + renewal | ✅ | ✅ | ✅ |
| Ads — Google IMA | ✅ | ✅ | ✅ |
| Ads — FreeWheel | ✅ native + VMAP | ✅ native + VMAP | ✅ native + VMAP |
| Controls chrome + theming tokens | ✅ | ✅ | ✅ |
| Custom action icons (≤8) | ✅ | ✅ | ✅ |
| Custom error messages | ✅ | ✅ | ✅ |
| Watermarks / 9 overlay slots | ✅ | ✅ | ✅ |
| Content ratings (Kijkwijzer-style) | ✅ | ✅ | ✅ |
| Trick-play thumbnails | ✅ | ✅ | ✅ |
| Fullscreen (+ start-in, exit interception) | ✅ | ✅ | ✅ gesture-gated |
| Casting | Chromecast | AirPlay | ⏳ Remote Playback API |
| Offline license verification | ✅ | ✅ | ✅ WebCrypto |
| Ad-blocker policy | n/a | n/a | ✅ notice / block |