Skip to content
Breaking changes

v10.0.0-beta.25

Compare changes on GitHub

Quality selection headlines beta.25. Core gains media tracks and renditions state (#1664) and a quality selection model (#1693), surfaced as a quality menu in the shipped skins (#1694) whose Auto option shows the currently resolved rendition (#1698). The menu system from beta.24 keeps growing: a settings menu gathers playback options in one place (#1615), audio tracks get their own menu (#1714), and menus pick up clearer group labels, mutation handling, and style polish (#1643, #1739, #1725).

Three changes are breaking. HLS and DASH media now include Google Cast by default (#1661): features like Cast and Mux Data are composed as media components and configured through namespaced options such as media.config.googleCast.receiver and media.config.hlsJs.capLevelToPlayerSize, replacing the cast-src, prefer-playback, and debug element attributes. The hls.js-backed stack is renamed to make its engine explicit (#1753): update <hls-video> to <hlsjs-video>, HlsVideo to HlsJsVideo, and …/media/hls-video import subpaths to …/media/hlsjs-video. And the media capability predicates (isMediaPauseCapable and friends) moved from @videojs/core/dom to @videojs/core (#1705).

Remote playback rounds out beyond Cast: an AirPlay button ships in the html and react packages (#1531, #1614), and MSE-backed streams can now hand off to AirPlay (#1692). Vimeo joins the media lineup with a host and matching components (#1667), and the installation flow on the site and in the CLI offers DASH, Mux, and Vimeo sources (#1732) backed by a CDN media-availability manifest (#1737).

SPF, the stream processing framework behind the in-house engine, has a busy release: multi-CDN support with automatic failover (#1668, #1671), capability probing (#1676), text track switching (#1687), multi-track audio (#1605), an audio-only engine composition (#1584), and phase one of background video with a maxResolution cap (#1602, #1654).

Player polish continues: scrubber previews show timestamps (#1652), the time display toggles between elapsed and remaining (#1669), the time slider supports pauseOnDrag (#1596), fullscreen can lock orientation (#1656), popovers respect a positioning boundary (#1627), tooltips pair labels with shortcut hints (#1494), and posters support a blur-up placeholder (#1632).

Among the fixes: serializeAttributes escapes HTML special characters, closing an XSS vector (#1670); mobile controls no longer flash on the first tap after auto-hide (#1556); React recovers from destroyed stores under <Activity> (#1587) and memoizes the Provider context value (#1787); and dash.js is upgraded to 5.2.0 (#1724). The docs site adds this changelog section (#1793), API reference pages for the media elements (#1342), a menu reference (#1673), and guides for Google Cast and self-hosted builds (#1681, #1680).

Thanks to @Jerricho93 for their first contribution to Video.js.