Shaka Player does not attempt to detect the browser vendor or version. Instead, we target certain standard or standards-track features and support the browsers that implement those features. Where necessary, we use polyfills to supplement native browser support on a case-by-case basis.
See the Polyfills tutorial if you are not already familiar with the term.
Some features are required for basic operation.
Some features are optional, but enable the library to do more when present.
To test for browser support in an application:
We provide a support test page in the sources. This page does not rely on Shaka Player itself, and can be used as a standalone tool without compiling the code. Load support.html to see a detailed report for your browser. We host the latest release version of this page {@link http://goo.gl/RMTEGZ here}.
This support report is a great place to start debugging browser support issues, and you should include it in any bug report about browser support. You can find the source for this report in {@link https://goo.gl/2MU5E0 support.js}.
If you want to add support for a new browser via a new polyfill, please file an {@link https://goo.gl/nR24qY issue on github} to track the work and discuss the implementation with us if need be.
A polyfill should only implement, patch, or rename one feature. In some cases, such as EME, this may be {@link https://goo.gl/jQgMeg large} with many parts to it. In other cases, it may be a {@link https://goo.gl/baWIE8 fallback} to some equivalent functionality using a different API. But please do not try to write a single polyfill to tackle many missing features at once.
HTML5 Video | MSE | Promises | Uint8Array | Runs Shaka Player | |
---|---|---|---|---|---|
Chrome 48 (except iOS) | |||||
Firefox 44 (except iOS) | |||||
Safari 8 (OSX 10.10) | |||||
IE 11 (Windows 8.1) | (through provided polyfill) |
EME(protected content) | IndexedDB(offline content) | WebVTT(subtitles) | getVideoPlaybackQuality(QoE stats) | fullscreen API | persistent licenses(protected content offline) | |
---|---|---|---|---|---|---|
Chrome 48 (except iOS) | (ChromeOS) | |||||
Firefox 44 (except iOS) | (EME missing) | |||||
Safari 8 (OSX 10.10) | (no known key system) | (reportedly buggy) | (unknown) | |||
IE 11 (Windows 8.1) | (may depend on settings) (reportedly incomplete) |
(PlayReady persistence incompatible with EME) |