@videojs/html 10.0.0-rc.4 → 10.0.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/default/define/audio/compat-skin.css +1923 -0
- package/dist/default/define/audio/compat-skin.js +6 -0
- package/dist/default/define/audio/compat-skin2.js +4 -0
- package/dist/default/define/audio/neutral-skin.css +1855 -0
- package/dist/default/define/audio/neutral-skin.js +6 -0
- package/dist/default/define/audio/neutral-skin2.js +4 -0
- package/dist/default/define/audio/{minimal-ui.js → neutral-ui.js} +1 -1
- package/dist/default/define/audio/skin.css +1220 -1411
- package/dist/default/define/audio/skin2.js +1 -1
- package/dist/default/define/background/skin.css +8 -19
- package/dist/default/define/global.css +5 -21
- package/dist/default/define/live-audio/compat-skin.css +1708 -0
- package/dist/default/define/live-audio/compat-skin.js +6 -0
- package/dist/default/define/live-audio/compat-skin2.js +4 -0
- package/dist/default/define/live-audio/neutral-skin.css +1270 -0
- package/dist/default/define/live-audio/neutral-skin.js +6 -0
- package/dist/default/define/live-audio/neutral-skin2.js +4 -0
- package/dist/default/define/live-audio/{minimal-ui.js → neutral-ui.js} +1 -1
- package/dist/default/define/live-audio/skin.css +849 -959
- package/dist/default/define/live-audio/skin2.js +1 -1
- package/dist/default/define/live-video/compat-skin.css +2251 -0
- package/dist/default/define/live-video/compat-skin.js +6 -0
- package/dist/default/define/live-video/compat-skin2.js +4 -0
- package/dist/default/define/live-video/neutral-skin.css +2101 -0
- package/dist/default/define/live-video/neutral-skin.js +6 -0
- package/dist/default/define/live-video/neutral-skin2.js +4 -0
- package/dist/default/define/live-video/{minimal-ui.js → neutral-ui.js} +1 -1
- package/dist/default/define/live-video/skin.css +1565 -1784
- package/dist/default/define/live-video/skin2.js +1 -1
- package/dist/default/define/media/dash-video.js +5 -1
- package/dist/default/define/media/shaka-video.js +1 -0
- package/dist/default/define/shadow.css +2 -12
- package/dist/default/define/video/compat-skin.css +2529 -0
- package/dist/default/define/video/compat-skin.js +6 -0
- package/dist/default/define/video/compat-skin2.js +4 -0
- package/dist/default/define/video/neutral-skin.css +2849 -0
- package/dist/default/define/video/neutral-skin.js +6 -0
- package/dist/default/define/video/neutral-skin2.js +4 -0
- package/dist/default/define/video/{minimal-ui.js → neutral-ui.js} +1 -1
- package/dist/default/define/video/skin.css +2046 -2454
- package/dist/default/define/video/skin2.js +1 -1
- package/dist/default/extensions/google-cast/extension.js +18 -17
- package/dist/default/extensions/mux-data/extension.js +24 -24
- package/dist/default/extensions/player-extension-element.js +49 -0
- package/dist/default/i18n/index.js +2 -2
- package/dist/default/i18n/locale.js +10 -2
- package/dist/default/i18n/provider-element.js +1 -0
- package/dist/default/i18n/provider-mixin.js +11 -9
- package/dist/default/i18n/render-text.js +5 -1
- package/dist/default/i18n/text/airplay.js +1 -0
- package/dist/default/i18n/text/buttons.js +1 -0
- package/dist/default/i18n/text/captions.js +1 -0
- package/dist/default/i18n/text/cast.js +1 -0
- package/dist/default/i18n/text/common.js +1 -0
- package/dist/default/i18n/text/container.js +1 -0
- package/dist/default/i18n/text/errors.js +1 -0
- package/dist/default/i18n/text/fullscreen.js +1 -0
- package/dist/default/i18n/text/live.js +1 -0
- package/dist/default/i18n/text/menu.js +1 -0
- package/dist/default/i18n/text/pip.js +1 -0
- package/dist/default/i18n/text/playback.js +1 -0
- package/dist/default/i18n/text/seek.js +1 -0
- package/dist/default/i18n/text/slider.js +1 -0
- package/dist/default/i18n/text/status.js +1 -0
- package/dist/default/i18n/text/time.js +1 -0
- package/dist/default/i18n/text/volume.js +1 -0
- package/dist/default/icons/compat/index.js +26 -0
- package/dist/default/icons/dist/element/compat/icons.js +30 -0
- package/dist/default/icons/dist/element/{minimal → compat}/index.js +2 -2
- package/dist/default/icons/dist/element/index.js +2 -1
- package/dist/default/icons/dist/element/{minimal → neutral}/icons.js +1 -1
- package/dist/default/icons/dist/element/neutral/index.js +8 -0
- package/dist/default/icons/dist/html/compat/airplay-enter.js +4 -0
- package/dist/default/icons/dist/html/compat/airplay-exit.js +4 -0
- package/dist/default/icons/dist/html/compat/captions-off.js +4 -0
- package/dist/default/icons/dist/html/compat/captions-on.js +4 -0
- package/dist/default/icons/dist/html/compat/cast-enter.js +4 -0
- package/dist/default/icons/dist/html/compat/cast-exit.js +4 -0
- package/dist/default/icons/dist/html/compat/check.js +4 -0
- package/dist/default/icons/dist/html/compat/chevron.js +4 -0
- package/dist/default/icons/dist/html/compat/fullscreen-enter.js +4 -0
- package/dist/default/icons/dist/html/compat/fullscreen-exit.js +4 -0
- package/dist/default/icons/dist/html/compat/gear.js +4 -0
- package/dist/default/icons/dist/html/compat/pause.js +4 -0
- package/dist/default/icons/dist/html/compat/pip-enter.js +4 -0
- package/dist/default/icons/dist/html/compat/pip-exit.js +4 -0
- package/dist/default/icons/dist/html/compat/play.js +4 -0
- package/dist/default/icons/dist/html/compat/quality.js +4 -0
- package/dist/default/icons/dist/html/compat/restart.js +4 -0
- package/dist/default/icons/dist/html/compat/seek.js +4 -0
- package/dist/default/icons/dist/html/compat/speech.js +4 -0
- package/dist/default/icons/dist/html/compat/speed.js +4 -0
- package/dist/default/icons/dist/html/{minimal → compat}/spinner.js +1 -1
- package/dist/default/icons/dist/html/compat/switches.js +4 -0
- package/dist/default/icons/dist/html/compat/volume-high.js +4 -0
- package/dist/default/icons/dist/html/compat/volume-low.js +4 -0
- package/dist/default/icons/dist/html/compat/volume-off.js +4 -0
- package/dist/default/icons/dist/html/{minimal → neutral}/airplay-enter.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/airplay-exit.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/captions-off.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/captions-on.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/cast-enter.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/cast-exit.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/check.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/chevron.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/fullscreen-enter.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/fullscreen-exit.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/gear.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/pause.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/pip-enter.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/pip-exit.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/play.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/quality.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/restart.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/seek.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/speech.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/speed.js +1 -1
- package/dist/default/icons/dist/html/neutral/spinner.js +4 -0
- package/dist/default/icons/dist/html/{minimal → neutral}/switches.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/volume-high.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/volume-low.js +1 -1
- package/dist/default/icons/dist/html/{minimal → neutral}/volume-off.js +1 -1
- package/dist/default/icons/element/compat/index.js +1 -0
- package/dist/default/icons/element/neutral/index.js +1 -0
- package/dist/default/icons/neutral/index.js +26 -0
- package/dist/default/index.js +4 -3
- package/dist/default/internal/skins/compat-audio/register.js +70 -0
- package/dist/default/internal/skins/compat-audio/skin.css +1891 -0
- package/dist/default/internal/skins/compat-audio/template.js +215 -0
- package/dist/default/internal/skins/compat-live-audio/register.js +50 -0
- package/dist/default/internal/skins/compat-live-audio/skin.css +1676 -0
- package/dist/default/internal/skins/compat-live-audio/template.js +112 -0
- package/dist/default/internal/skins/compat-live-video/register.js +86 -0
- package/dist/default/internal/skins/compat-live-video/skin.css +2219 -0
- package/dist/default/internal/skins/compat-live-video/template.js +237 -0
- package/dist/default/internal/skins/compat-video/register.js +115 -0
- package/dist/default/internal/skins/compat-video/skin.css +2497 -0
- package/dist/default/internal/skins/compat-video/template.js +457 -0
- package/dist/default/internal/skins/default-audio/register.js +8 -8
- package/dist/default/internal/skins/default-audio/skin.css +1213 -1365
- package/dist/default/internal/skins/default-live-audio/register.js +4 -4
- package/dist/default/internal/skins/default-live-audio/skin.css +842 -913
- package/dist/default/internal/skins/default-live-video/register.js +8 -8
- package/dist/default/internal/skins/default-live-video/skin.css +1548 -1728
- package/dist/default/internal/skins/default-video/register.js +13 -13
- package/dist/default/internal/skins/default-video/skin.css +2034 -2403
- package/dist/default/internal/skins/{minimal-audio → neutral-audio}/register.js +20 -20
- package/dist/default/internal/skins/neutral-audio/skin.css +1823 -0
- package/dist/default/internal/skins/{minimal-audio → neutral-audio}/template.js +24 -24
- package/dist/default/internal/skins/{minimal-live-audio → neutral-live-audio}/register.js +13 -13
- package/dist/default/internal/skins/neutral-live-audio/skin.css +1238 -0
- package/dist/default/internal/skins/{minimal-live-audio → neutral-live-audio}/template.js +14 -14
- package/dist/default/internal/skins/{minimal-live-video → neutral-live-video}/register.js +28 -28
- package/dist/default/internal/skins/neutral-live-video/skin.css +2069 -0
- package/dist/default/internal/skins/{minimal-live-video → neutral-live-video}/template.js +47 -47
- package/dist/default/internal/skins/{minimal-video → neutral-video}/register.js +40 -40
- package/dist/default/internal/skins/neutral-video/skin.css +2817 -0
- package/dist/default/internal/skins/{minimal-video → neutral-video}/template.js +75 -75
- package/dist/default/player/context.js +9 -1
- package/dist/default/player/create-player.js +2 -1
- package/dist/default/player/element.js +47 -10
- package/dist/default/presets/audio/compat-skin.js +19 -0
- package/dist/default/presets/audio/index.js +3 -2
- package/dist/default/presets/audio/neutral-skin.js +19 -0
- package/dist/default/presets/live-audio/compat-skin.js +19 -0
- package/dist/default/presets/live-audio/index.js +3 -2
- package/dist/default/presets/live-audio/neutral-skin.js +19 -0
- package/dist/default/presets/live-video/compat-skin.js +19 -0
- package/dist/default/presets/live-video/index.js +3 -2
- package/dist/default/presets/live-video/neutral-skin.js +19 -0
- package/dist/default/presets/video/compat-skin.js +19 -0
- package/dist/default/presets/video/index.js +3 -2
- package/dist/default/presets/video/neutral-skin.js +19 -0
- package/dist/default/store/media-attach-mixin.js +2 -0
- package/dist/default/ui/airplay-button/element.js +1 -1
- package/dist/default/ui/buffering-indicator/element.js +4 -0
- package/dist/default/ui/dialog/context.js +1 -0
- package/dist/default/ui/dialog/element.js +4 -2
- package/dist/default/ui/media-button-element.js +7 -6
- package/dist/default/ui/media-ui-element.js +6 -1
- package/dist/default/ui/menu/context.js +2 -0
- package/dist/default/ui/play-button/element.js +1 -1
- package/dist/default/ui/playback-rate-button/element.js +4 -2
- package/dist/default/ui/popover/element.js +4 -2
- package/dist/default/ui/radio-group/context.js +1 -0
- package/dist/default/ui/seek-indicator/element.js +7 -1
- package/dist/default/ui/slider/context.js +1 -0
- package/dist/default/ui/status-indicator/element.js +14 -1
- package/dist/default/ui/text/element.js +1 -0
- package/dist/default/ui/thumbnail/element.js +3 -2
- package/dist/default/ui/tooltip/context.js +1 -0
- package/dist/default/ui/tooltip/element.js +4 -2
- package/dist/default/ui/volume-popover/element.js +1 -1
- package/dist/default/ui/volume-slider/element.js +1 -1
- package/dist/default/version.js +27 -0
- package/dist/dev/define/audio/compat-skin.css +1923 -0
- package/dist/dev/define/audio/compat-skin.d.ts +1 -0
- package/dist/dev/define/audio/compat-skin.js +8 -0
- package/dist/dev/define/audio/compat-skin.js.map +1 -0
- package/dist/dev/define/audio/compat-skin2.js +6 -0
- package/dist/dev/define/audio/compat-skin2.js.map +1 -0
- package/dist/dev/define/audio/neutral-skin.css +1855 -0
- package/dist/dev/define/audio/neutral-skin.d.ts +1 -0
- package/dist/dev/define/audio/neutral-skin.js +8 -0
- package/dist/dev/define/audio/neutral-skin.js.map +1 -0
- package/dist/dev/define/audio/neutral-skin2.js +6 -0
- package/dist/dev/define/audio/neutral-skin2.js.map +1 -0
- package/dist/dev/define/audio/{minimal-ui.js → neutral-ui.js} +2 -2
- package/dist/dev/define/audio/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
- package/dist/dev/define/audio/skin.css +1220 -1411
- package/dist/dev/define/audio/skin2.js +1 -1
- package/dist/dev/define/audio/skin2.js.map +1 -1
- package/dist/dev/define/background/skin.css +8 -19
- package/dist/dev/define/global.css +5 -21
- package/dist/dev/define/live-audio/compat-skin.css +1708 -0
- package/dist/dev/define/live-audio/compat-skin.d.ts +1 -0
- package/dist/dev/define/live-audio/compat-skin.js +8 -0
- package/dist/dev/define/live-audio/compat-skin.js.map +1 -0
- package/dist/dev/define/live-audio/compat-skin2.js +6 -0
- package/dist/dev/define/live-audio/compat-skin2.js.map +1 -0
- package/dist/dev/define/live-audio/neutral-skin.css +1270 -0
- package/dist/dev/define/live-audio/neutral-skin.d.ts +1 -0
- package/dist/dev/define/live-audio/neutral-skin.js +8 -0
- package/dist/dev/define/live-audio/neutral-skin.js.map +1 -0
- package/dist/dev/define/live-audio/neutral-skin2.js +6 -0
- package/dist/dev/define/live-audio/neutral-skin2.js.map +1 -0
- package/dist/dev/define/live-audio/{minimal-ui.js → neutral-ui.js} +2 -2
- package/dist/dev/define/live-audio/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
- package/dist/dev/define/live-audio/skin.css +849 -959
- package/dist/dev/define/live-audio/skin2.js +1 -1
- package/dist/dev/define/live-audio/skin2.js.map +1 -1
- package/dist/dev/define/live-video/compat-skin.css +2251 -0
- package/dist/dev/define/live-video/compat-skin.d.ts +1 -0
- package/dist/dev/define/live-video/compat-skin.js +8 -0
- package/dist/dev/define/live-video/compat-skin.js.map +1 -0
- package/dist/dev/define/live-video/compat-skin2.js +6 -0
- package/dist/dev/define/live-video/compat-skin2.js.map +1 -0
- package/dist/dev/define/live-video/neutral-skin.css +2101 -0
- package/dist/dev/define/live-video/neutral-skin.d.ts +1 -0
- package/dist/dev/define/live-video/neutral-skin.js +8 -0
- package/dist/dev/define/live-video/neutral-skin.js.map +1 -0
- package/dist/dev/define/live-video/neutral-skin2.js +6 -0
- package/dist/dev/define/live-video/neutral-skin2.js.map +1 -0
- package/dist/dev/define/live-video/{minimal-ui.js → neutral-ui.js} +2 -2
- package/dist/dev/define/live-video/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
- package/dist/dev/define/live-video/skin.css +1565 -1784
- package/dist/dev/define/live-video/skin2.js +1 -1
- package/dist/dev/define/live-video/skin2.js.map +1 -1
- package/dist/dev/define/media/background-video.d.ts +1 -2
- package/dist/dev/define/media/cloudflare-video.d.ts +3 -2
- package/dist/dev/define/media/cloudflare-video.js.map +1 -1
- package/dist/dev/define/media/dash-video.d.ts +8 -3
- package/dist/dev/define/media/dash-video.js +5 -1
- package/dist/dev/define/media/dash-video.js.map +1 -1
- package/dist/dev/define/media/hls-audio.d.ts +1 -2
- package/dist/dev/define/media/hls-background-video.d.ts +1 -2
- package/dist/dev/define/media/hls-video.d.ts +1 -2
- package/dist/dev/define/media/hlsjs-video.d.ts +3 -2
- package/dist/dev/define/media/hlsjs-video.js.map +1 -1
- package/dist/dev/define/media/mux-audio/hls-js.d.ts +3 -2
- package/dist/dev/define/media/mux-audio/hls-js.js.map +1 -1
- package/dist/dev/define/media/mux-audio/index.d.ts +2 -2
- package/dist/dev/define/media/mux-audio/spf.d.ts +3 -2
- package/dist/dev/define/media/mux-audio/spf.js.map +1 -1
- package/dist/dev/define/media/mux-background-video.d.ts +1 -2
- package/dist/dev/define/media/mux-video/hls-js.d.ts +3 -2
- package/dist/dev/define/media/mux-video/hls-js.js.map +1 -1
- package/dist/dev/define/media/mux-video/index.d.ts +2 -2
- package/dist/dev/define/media/mux-video/spf.d.ts +3 -2
- package/dist/dev/define/media/mux-video/spf.js.map +1 -1
- package/dist/dev/define/media/native-hls-video.d.ts +3 -2
- package/dist/dev/define/media/native-hls-video.js.map +1 -1
- package/dist/dev/define/media/shaka-video.d.ts +4 -2
- package/dist/dev/define/media/shaka-video.js +1 -0
- package/dist/dev/define/media/shaka-video.js.map +1 -1
- package/dist/dev/define/media/spotify-audio.d.ts +3 -2
- package/dist/dev/define/media/spotify-audio.js.map +1 -1
- package/dist/dev/define/media/tiktok-video.d.ts +3 -2
- package/dist/dev/define/media/tiktok-video.js.map +1 -1
- package/dist/dev/define/media/twitch-video.d.ts +3 -2
- package/dist/dev/define/media/twitch-video.js.map +1 -1
- package/dist/dev/define/media/vimeo-video.d.ts +3 -2
- package/dist/dev/define/media/vimeo-video.js.map +1 -1
- package/dist/dev/define/media/wistia-video.d.ts +3 -2
- package/dist/dev/define/media/wistia-video.js.map +1 -1
- package/dist/dev/define/media/youtube-video.d.ts +3 -2
- package/dist/dev/define/media/youtube-video.js.map +1 -1
- package/dist/dev/define/shadow.css +2 -12
- package/dist/dev/define/ui/menu-radio-group.d.ts +1 -0
- package/dist/dev/define/ui/menu.d.ts +1 -0
- package/dist/dev/define/ui/popover.d.ts +1 -0
- package/dist/dev/define/video/compat-skin.css +2529 -0
- package/dist/dev/define/video/compat-skin.d.ts +1 -0
- package/dist/dev/define/video/compat-skin.js +8 -0
- package/dist/dev/define/video/compat-skin.js.map +1 -0
- package/dist/dev/define/video/compat-skin2.js +6 -0
- package/dist/dev/define/video/compat-skin2.js.map +1 -0
- package/dist/dev/define/video/neutral-skin.css +2849 -0
- package/dist/dev/define/video/neutral-skin.d.ts +1 -0
- package/dist/dev/define/video/neutral-skin.js +8 -0
- package/dist/dev/define/video/neutral-skin.js.map +1 -0
- package/dist/dev/define/video/neutral-skin2.js +6 -0
- package/dist/dev/define/video/neutral-skin2.js.map +1 -0
- package/dist/dev/define/video/{minimal-ui.js → neutral-ui.js} +2 -2
- package/dist/dev/define/video/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
- package/dist/dev/define/video/skin.css +2046 -2454
- package/dist/dev/define/video/skin2.js +1 -1
- package/dist/dev/define/video/skin2.js.map +1 -1
- package/dist/dev/extensions/google-cast/extension.d.ts +8 -7
- package/dist/dev/extensions/google-cast/extension.js +18 -17
- package/dist/dev/extensions/google-cast/extension.js.map +1 -1
- package/dist/dev/extensions/mux-data/extension.d.ts +6 -6
- package/dist/dev/extensions/mux-data/extension.js +24 -24
- package/dist/dev/extensions/mux-data/extension.js.map +1 -1
- package/dist/dev/extensions/player-extension-element.d.ts +30 -0
- package/dist/dev/extensions/player-extension-element.js +51 -0
- package/dist/dev/extensions/player-extension-element.js.map +1 -0
- package/dist/dev/i18n/context.d.ts +4 -5
- package/dist/dev/i18n/controller.d.ts +3 -4
- package/dist/dev/i18n/controller.js.map +1 -1
- package/dist/dev/i18n/create-i18n.d.ts +3 -4
- package/dist/dev/i18n/index.d.ts +2 -2
- package/dist/dev/i18n/index.js +2 -2
- package/dist/dev/i18n/locale.d.ts +12 -5
- package/dist/dev/i18n/locale.js +10 -2
- package/dist/dev/i18n/locale.js.map +1 -1
- package/dist/dev/i18n/provider-element.d.ts +4 -3
- package/dist/dev/i18n/provider-element.js +1 -0
- package/dist/dev/i18n/provider-element.js.map +1 -1
- package/dist/dev/i18n/provider-mixin.d.ts +1 -2
- package/dist/dev/i18n/provider-mixin.js +11 -9
- package/dist/dev/i18n/provider-mixin.js.map +1 -1
- package/dist/dev/i18n/render-text.d.ts +6 -3
- package/dist/dev/i18n/render-text.js +5 -1
- package/dist/dev/i18n/render-text.js.map +1 -1
- package/dist/dev/i18n/text/airplay.d.ts +1 -0
- package/dist/dev/i18n/text/airplay.js +1 -0
- package/dist/dev/i18n/text/buttons.d.ts +1 -0
- package/dist/dev/i18n/text/buttons.js +1 -0
- package/dist/dev/i18n/text/captions.d.ts +1 -0
- package/dist/dev/i18n/text/captions.js +1 -0
- package/dist/dev/i18n/text/cast.d.ts +1 -0
- package/dist/dev/i18n/text/cast.js +1 -0
- package/dist/dev/i18n/text/common.d.ts +1 -0
- package/dist/dev/i18n/text/common.js +1 -0
- package/dist/dev/i18n/text/container.d.ts +1 -0
- package/dist/dev/i18n/text/container.js +1 -0
- package/dist/dev/i18n/text/errors.d.ts +1 -0
- package/dist/dev/i18n/text/errors.js +1 -0
- package/dist/dev/i18n/text/fullscreen.d.ts +1 -0
- package/dist/dev/i18n/text/fullscreen.js +1 -0
- package/dist/dev/i18n/text/live.d.ts +1 -0
- package/dist/dev/i18n/text/live.js +1 -0
- package/dist/dev/i18n/text/menu.d.ts +1 -0
- package/dist/dev/i18n/text/menu.js +1 -0
- package/dist/dev/i18n/text/pip.d.ts +1 -0
- package/dist/dev/i18n/text/pip.js +1 -0
- package/dist/dev/i18n/text/playback.d.ts +1 -0
- package/dist/dev/i18n/text/playback.js +1 -0
- package/dist/dev/i18n/text/seek.d.ts +1 -0
- package/dist/dev/i18n/text/seek.js +1 -0
- package/dist/dev/i18n/text/slider.d.ts +1 -0
- package/dist/dev/i18n/text/slider.js +1 -0
- package/dist/dev/i18n/text/status.d.ts +1 -0
- package/dist/dev/i18n/text/status.js +1 -0
- package/dist/dev/i18n/text/time.d.ts +1 -0
- package/dist/dev/i18n/text/time.js +1 -0
- package/dist/dev/i18n/text/volume.d.ts +1 -0
- package/dist/dev/i18n/text/volume.js +1 -0
- package/dist/dev/i18n/text-mixin.d.ts +1 -2
- package/dist/dev/i18n/text-mixin.js.map +1 -1
- package/dist/dev/i18n/types.d.ts +2 -3
- package/dist/dev/icons/{minimal → compat}/index.d.ts +1 -1
- package/dist/dev/icons/compat/index.js +26 -0
- package/dist/dev/icons/dist/element/base.d.ts +1 -2
- package/dist/dev/icons/dist/element/base.js.map +1 -1
- package/dist/dev/icons/dist/element/compat/icons.js +32 -0
- package/dist/dev/icons/dist/element/compat/icons.js.map +1 -0
- package/dist/dev/icons/dist/element/{minimal → compat}/index.js +2 -2
- package/dist/dev/icons/dist/element/compat/index.js.map +1 -0
- package/dist/dev/icons/dist/element/index.js +2 -1
- package/dist/dev/icons/dist/element/index.js.map +1 -1
- package/dist/dev/icons/dist/element/{minimal → neutral}/icons.js +1 -1
- package/dist/dev/icons/dist/element/{minimal → neutral}/icons.js.map +1 -1
- package/dist/dev/icons/dist/element/neutral/index.d.ts +1 -0
- package/dist/dev/icons/dist/element/neutral/index.js +10 -0
- package/dist/dev/icons/dist/element/{minimal → neutral}/index.js.map +1 -1
- package/dist/dev/icons/dist/html/compat/airplay-enter.js +6 -0
- package/dist/dev/icons/dist/html/compat/airplay-enter.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/airplay-exit.js +6 -0
- package/dist/dev/icons/dist/html/compat/airplay-exit.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/captions-off.js +6 -0
- package/dist/dev/icons/dist/html/compat/captions-off.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/captions-on.js +6 -0
- package/dist/dev/icons/dist/html/compat/captions-on.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/cast-enter.js +6 -0
- package/dist/dev/icons/dist/html/compat/cast-enter.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/cast-exit.js +6 -0
- package/dist/dev/icons/dist/html/compat/cast-exit.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/check.js +6 -0
- package/dist/dev/icons/dist/html/compat/check.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/chevron.js +6 -0
- package/dist/dev/icons/dist/html/compat/chevron.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/fullscreen-enter.js +6 -0
- package/dist/dev/icons/dist/html/compat/fullscreen-enter.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/fullscreen-exit.js +6 -0
- package/dist/dev/icons/dist/html/compat/fullscreen-exit.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/gear.js +6 -0
- package/dist/dev/icons/dist/html/compat/gear.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/index.d.ts +28 -0
- package/dist/dev/icons/dist/html/compat/pause.js +6 -0
- package/dist/dev/icons/dist/html/compat/pause.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/pip-enter.js +6 -0
- package/dist/dev/icons/dist/html/compat/pip-enter.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/pip-exit.js +6 -0
- package/dist/dev/icons/dist/html/compat/pip-exit.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/play.js +6 -0
- package/dist/dev/icons/dist/html/compat/play.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/quality.js +6 -0
- package/dist/dev/icons/dist/html/compat/quality.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/restart.js +6 -0
- package/dist/dev/icons/dist/html/compat/restart.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/seek.js +6 -0
- package/dist/dev/icons/dist/html/compat/seek.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/speech.js +6 -0
- package/dist/dev/icons/dist/html/compat/speech.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/speed.js +6 -0
- package/dist/dev/icons/dist/html/compat/speed.js.map +1 -0
- package/dist/dev/icons/dist/html/{minimal → compat}/spinner.js +1 -1
- package/dist/dev/icons/dist/html/compat/spinner.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/switches.js +6 -0
- package/dist/dev/icons/dist/html/compat/switches.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/volume-high.js +6 -0
- package/dist/dev/icons/dist/html/compat/volume-high.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/volume-low.js +6 -0
- package/dist/dev/icons/dist/html/compat/volume-low.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/volume-off.js +6 -0
- package/dist/dev/icons/dist/html/compat/volume-off.js.map +1 -0
- package/dist/dev/icons/dist/html/default/index.d.ts +25 -26
- package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-enter.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-enter.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-exit.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-exit.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/captions-off.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/captions-on.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/captions-on.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/cast-enter.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/cast-enter.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/cast-exit.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/cast-exit.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/check.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/check.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/chevron.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/chevron.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-enter.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-enter.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-exit.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-exit.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/gear.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/gear.js.map +1 -1
- package/dist/dev/icons/dist/html/neutral/index.d.ts +28 -0
- package/dist/dev/icons/dist/html/{minimal → neutral}/pause.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/pause.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/pip-enter.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/pip-enter.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/pip-exit.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/pip-exit.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/play.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/play.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/quality.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/quality.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/restart.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/restart.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/seek.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/seek.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/speech.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/speech.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/speed.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/speed.js.map +1 -1
- package/dist/dev/icons/dist/html/neutral/spinner.js +6 -0
- package/dist/dev/icons/dist/html/{minimal → neutral}/spinner.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/switches.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/switches.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/volume-high.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/volume-high.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/volume-low.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/volume-low.js.map +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/volume-off.js +1 -1
- package/dist/dev/icons/dist/html/{minimal → neutral}/volume-off.js.map +1 -1
- package/dist/dev/icons/element/compat/index.d.ts +1 -0
- package/dist/dev/icons/element/compat/index.js +1 -0
- package/dist/dev/icons/element/neutral/index.d.ts +1 -0
- package/dist/dev/icons/element/neutral/index.js +1 -0
- package/dist/dev/icons/element/register/index.d.ts +1 -2
- package/dist/dev/icons/neutral/index.d.ts +2 -0
- package/dist/dev/icons/neutral/index.js +26 -0
- package/dist/dev/index.d.ts +12 -7
- package/dist/dev/index.js +4 -3
- package/dist/dev/internal/skins/compat-audio/register.d.ts +43 -0
- package/dist/dev/internal/skins/compat-audio/register.js +72 -0
- package/dist/dev/internal/skins/compat-audio/register.js.map +1 -0
- package/dist/dev/internal/skins/compat-audio/skin.css +1891 -0
- package/dist/dev/internal/skins/compat-audio/template.js +217 -0
- package/dist/dev/internal/skins/compat-audio/template.js.map +1 -0
- package/dist/dev/internal/skins/compat-live-audio/register.d.ts +27 -0
- package/dist/dev/internal/skins/compat-live-audio/register.js +52 -0
- package/dist/dev/internal/skins/compat-live-audio/register.js.map +1 -0
- package/dist/dev/internal/skins/compat-live-audio/skin.css +1676 -0
- package/dist/dev/internal/skins/compat-live-audio/template.js +114 -0
- package/dist/dev/internal/skins/compat-live-audio/template.js.map +1 -0
- package/dist/dev/internal/skins/compat-live-video/register.d.ts +45 -0
- package/dist/dev/internal/skins/compat-live-video/register.js +88 -0
- package/dist/dev/internal/skins/compat-live-video/register.js.map +1 -0
- package/dist/dev/internal/skins/compat-live-video/skin.css +2219 -0
- package/dist/dev/internal/skins/compat-live-video/template.js +239 -0
- package/dist/dev/internal/skins/compat-live-video/template.js.map +1 -0
- package/dist/dev/internal/skins/compat-video/register.d.ts +62 -0
- package/dist/dev/internal/skins/compat-video/register.js +117 -0
- package/dist/dev/internal/skins/compat-video/register.js.map +1 -0
- package/dist/dev/internal/skins/compat-video/skin.css +2497 -0
- package/dist/dev/internal/skins/compat-video/template.js +459 -0
- package/dist/dev/internal/skins/compat-video/template.js.map +1 -0
- package/dist/dev/internal/skins/default-audio/register.d.ts +12 -12
- package/dist/dev/internal/skins/default-audio/register.js +8 -8
- package/dist/dev/internal/skins/default-audio/skin.css +1213 -1365
- package/dist/dev/internal/skins/default-live-audio/register.d.ts +4 -4
- package/dist/dev/internal/skins/default-live-audio/register.js +4 -4
- package/dist/dev/internal/skins/default-live-audio/skin.css +842 -913
- package/dist/dev/internal/skins/default-live-video/register.d.ts +10 -10
- package/dist/dev/internal/skins/default-live-video/register.js +8 -8
- package/dist/dev/internal/skins/default-live-video/skin.css +1548 -1728
- package/dist/dev/internal/skins/default-video/register.d.ts +18 -18
- package/dist/dev/internal/skins/default-video/register.js +13 -13
- package/dist/dev/internal/skins/default-video/skin.css +2034 -2403
- package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/register.d.ts +14 -14
- package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/register.js +20 -20
- package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/register.js.map +1 -1
- package/dist/dev/internal/skins/neutral-audio/skin.css +1823 -0
- package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/template.js +24 -24
- package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/template.js.map +1 -1
- package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/register.d.ts +4 -4
- package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/register.js +13 -13
- package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/register.js.map +1 -1
- package/dist/dev/internal/skins/neutral-live-audio/skin.css +1238 -0
- package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/template.js +14 -14
- package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/template.js.map +1 -1
- package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/register.d.ts +10 -10
- package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/register.js +28 -28
- package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/register.js.map +1 -1
- package/dist/dev/internal/skins/neutral-live-video/skin.css +2069 -0
- package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/template.js +47 -47
- package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/template.js.map +1 -1
- package/dist/dev/internal/skins/{minimal-video → neutral-video}/register.d.ts +20 -20
- package/dist/dev/internal/skins/{minimal-video → neutral-video}/register.js +40 -40
- package/dist/dev/internal/skins/{minimal-video → neutral-video}/register.js.map +1 -1
- package/dist/dev/internal/skins/neutral-video/skin.css +2817 -0
- package/dist/dev/internal/skins/{minimal-video → neutral-video}/template.js +75 -75
- package/dist/dev/internal/skins/{minimal-video → neutral-video}/template.js.map +1 -1
- package/dist/dev/media/background-video/adapter.d.ts +1 -2
- package/dist/dev/media/background-video/template.d.ts +1 -2
- package/dist/dev/media/cloudflare-video/adapter.d.ts +3 -15
- package/dist/dev/media/dash-video/adapter.d.ts +3 -15
- package/dist/dev/media/hls-audio/adapter.d.ts +3 -15
- package/dist/dev/media/hls-background-video/adapter.d.ts +8 -5
- package/dist/dev/media/hls-background-video/adapter.js.map +1 -1
- package/dist/dev/media/hls-video/adapter.d.ts +3 -15
- package/dist/dev/media/hlsjs-video/adapter.d.ts +3 -15
- package/dist/dev/media/mux-audio/hls-js.d.ts +3 -15
- package/dist/dev/media/mux-audio/mixin.js.map +1 -1
- package/dist/dev/media/mux-audio/spf.d.ts +3 -15
- package/dist/dev/media/mux-video/hls-js.d.ts +3 -15
- package/dist/dev/media/mux-video/mixin.js.map +1 -1
- package/dist/dev/media/mux-video/spf.d.ts +3 -15
- package/dist/dev/media/native-hls-video/adapter.d.ts +3 -15
- package/dist/dev/media/shaka-video/adapter.d.ts +3 -15
- package/dist/dev/media/spotify-audio/adapter.d.ts +3 -15
- package/dist/dev/media/tiktok-video/adapter.d.ts +3 -15
- package/dist/dev/media/twitch-video/adapter.d.ts +3 -15
- package/dist/dev/media/vimeo-video/adapter.d.ts +3 -15
- package/dist/dev/media/wistia-video/adapter.d.ts +1 -2
- package/dist/dev/media/youtube-video/adapter.d.ts +3 -15
- package/dist/dev/player/context.d.ts +34 -15
- package/dist/dev/player/context.js +9 -1
- package/dist/dev/player/context.js.map +1 -1
- package/dist/dev/player/controller.d.ts +3 -4
- package/dist/dev/player/controller.js.map +1 -1
- package/dist/dev/player/create-player.d.ts +5 -6
- package/dist/dev/player/create-player.js +2 -1
- package/dist/dev/player/create-player.js.map +1 -1
- package/dist/dev/player/element.js +47 -10
- package/dist/dev/player/element.js.map +1 -1
- package/dist/dev/presets/audio/compat-skin.d.ts +15 -0
- package/dist/dev/presets/audio/compat-skin.js +21 -0
- package/dist/dev/presets/audio/compat-skin.js.map +1 -0
- package/dist/dev/presets/audio/index.d.ts +3 -2
- package/dist/dev/presets/audio/index.js +3 -2
- package/dist/dev/presets/audio/neutral-skin.d.ts +15 -0
- package/dist/dev/presets/audio/neutral-skin.js +21 -0
- package/dist/dev/presets/audio/neutral-skin.js.map +1 -0
- package/dist/dev/presets/audio/player.d.ts +2 -3
- package/dist/dev/presets/audio/skin.d.ts +2 -3
- package/dist/dev/presets/audio/skin.js.map +1 -1
- package/dist/dev/presets/background/player.d.ts +2 -3
- package/dist/dev/presets/background/skin.d.ts +1 -2
- package/dist/dev/presets/live-audio/compat-skin.d.ts +15 -0
- package/dist/dev/presets/live-audio/compat-skin.js +21 -0
- package/dist/dev/presets/live-audio/compat-skin.js.map +1 -0
- package/dist/dev/presets/live-audio/index.d.ts +3 -2
- package/dist/dev/presets/live-audio/index.js +3 -2
- package/dist/dev/presets/live-audio/neutral-skin.d.ts +15 -0
- package/dist/dev/presets/live-audio/neutral-skin.js +21 -0
- package/dist/dev/presets/live-audio/neutral-skin.js.map +1 -0
- package/dist/dev/presets/live-audio/player.d.ts +2 -3
- package/dist/dev/presets/live-audio/skin.d.ts +2 -3
- package/dist/dev/presets/live-audio/skin.js.map +1 -1
- package/dist/dev/presets/live-video/compat-skin.d.ts +15 -0
- package/dist/dev/presets/live-video/compat-skin.js +21 -0
- package/dist/dev/presets/live-video/compat-skin.js.map +1 -0
- package/dist/dev/presets/live-video/index.d.ts +3 -2
- package/dist/dev/presets/live-video/index.js +3 -2
- package/dist/dev/presets/live-video/neutral-skin.d.ts +15 -0
- package/dist/dev/presets/live-video/neutral-skin.js +21 -0
- package/dist/dev/presets/live-video/neutral-skin.js.map +1 -0
- package/dist/dev/presets/live-video/player.d.ts +2 -3
- package/dist/dev/presets/live-video/skin.d.ts +2 -3
- package/dist/dev/presets/live-video/skin.js.map +1 -1
- package/dist/dev/presets/skin.d.ts +1 -2
- package/dist/dev/presets/video/compat-skin.d.ts +15 -0
- package/dist/dev/presets/video/compat-skin.js +21 -0
- package/dist/dev/presets/video/compat-skin.js.map +1 -0
- package/dist/dev/presets/video/index.d.ts +3 -2
- package/dist/dev/presets/video/index.js +3 -2
- package/dist/dev/presets/video/neutral-skin.d.ts +15 -0
- package/dist/dev/presets/video/neutral-skin.js +21 -0
- package/dist/dev/presets/video/neutral-skin.js.map +1 -0
- package/dist/dev/presets/video/player.d.ts +2 -3
- package/dist/dev/presets/video/skin.d.ts +2 -3
- package/dist/dev/presets/video/skin.js.map +1 -1
- package/dist/dev/store/media-attach-mixin.d.ts +6 -4
- package/dist/dev/store/media-attach-mixin.js +2 -0
- package/dist/dev/store/media-attach-mixin.js.map +1 -1
- package/dist/dev/store/types.d.ts +2 -4
- package/dist/dev/ui/airplay-button/element.d.ts +4 -5
- package/dist/dev/ui/airplay-button/element.js +1 -1
- package/dist/dev/ui/airplay-button/element.js.map +1 -1
- package/dist/dev/ui/alert-dialog/element.d.ts +1 -2
- package/dist/dev/ui/audio-track-radio-group/element.d.ts +4 -5
- package/dist/dev/ui/audio-track-radio-group/element.js.map +1 -1
- package/dist/dev/ui/buffering-indicator/element.d.ts +2 -2
- package/dist/dev/ui/buffering-indicator/element.js +4 -0
- package/dist/dev/ui/buffering-indicator/element.js.map +1 -1
- package/dist/dev/ui/captions-button/element.d.ts +7 -10
- package/dist/dev/ui/captions-button/element.js.map +1 -1
- package/dist/dev/ui/captions-radio-group/element.d.ts +4 -5
- package/dist/dev/ui/captions-radio-group/element.js.map +1 -1
- package/dist/dev/ui/cast-button/element.d.ts +3 -4
- package/dist/dev/ui/cast-button/element.js.map +1 -1
- package/dist/dev/ui/container/element.d.ts +1 -2
- package/dist/dev/ui/container/element.js.map +1 -1
- package/dist/dev/ui/context-part-element.d.ts +2 -3
- package/dist/dev/ui/context-part-element.js.map +1 -1
- package/dist/dev/ui/controls/backdrop.d.ts +1 -2
- package/dist/dev/ui/controls/content.d.ts +1 -2
- package/dist/dev/ui/controls/context.d.ts +1 -2
- package/dist/dev/ui/controls/element.d.ts +1 -2
- package/dist/dev/ui/controls/element.js.map +1 -1
- package/dist/dev/ui/controls/group.d.ts +1 -2
- package/dist/dev/ui/dialog/backdrop.d.ts +1 -2
- package/dist/dev/ui/dialog/close.d.ts +1 -2
- package/dist/dev/ui/dialog/close.js.map +1 -1
- package/dist/dev/ui/dialog/context.d.ts +4 -3
- package/dist/dev/ui/dialog/context.js +1 -0
- package/dist/dev/ui/dialog/context.js.map +1 -1
- package/dist/dev/ui/dialog/description.d.ts +1 -2
- package/dist/dev/ui/dialog/element.d.ts +5 -4
- package/dist/dev/ui/dialog/element.js +4 -2
- package/dist/dev/ui/dialog/element.js.map +1 -1
- package/dist/dev/ui/dialog/popup.d.ts +1 -2
- package/dist/dev/ui/dialog/popup.js.map +1 -1
- package/dist/dev/ui/dialog/title.d.ts +1 -2
- package/dist/dev/ui/error-dialog/element.d.ts +1 -2
- package/dist/dev/ui/error-dialog/element.js.map +1 -1
- package/dist/dev/ui/fullscreen-button/element.d.ts +3 -5
- package/dist/dev/ui/fullscreen-button/element.js.map +1 -1
- package/dist/dev/ui/gesture/element.d.ts +1 -2
- package/dist/dev/ui/gesture/element.js.map +1 -1
- package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts +2 -3
- package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.js.map +1 -1
- package/dist/dev/ui/hotkey/element.d.ts +1 -2
- package/dist/dev/ui/hotkey/element.js.map +1 -1
- package/dist/dev/ui/input-indicator/element.d.ts +5 -4
- package/dist/dev/ui/input-indicator/element.js.map +1 -1
- package/dist/dev/ui/input-indicator/live-indicator.d.ts +2 -3
- package/dist/dev/ui/input-indicator/live-indicator.js.map +1 -1
- package/dist/dev/ui/live-button/element.d.ts +4 -4
- package/dist/dev/ui/live-button/element.js.map +1 -1
- package/dist/dev/ui/media-button-element.d.ts +17 -8
- package/dist/dev/ui/media-button-element.js +7 -6
- package/dist/dev/ui/media-button-element.js.map +1 -1
- package/dist/dev/ui/media-ui-element.d.ts +15 -7
- package/dist/dev/ui/media-ui-element.js +6 -1
- package/dist/dev/ui/media-ui-element.js.map +1 -1
- package/dist/dev/ui/menu/checkbox-item.d.ts +1 -2
- package/dist/dev/ui/menu/checkbox-item.js.map +1 -1
- package/dist/dev/ui/menu/content.d.ts +1 -2
- package/dist/dev/ui/menu/content.js.map +1 -1
- package/dist/dev/ui/menu/context.d.ts +9 -5
- package/dist/dev/ui/menu/context.js +2 -0
- package/dist/dev/ui/menu/context.js.map +1 -1
- package/dist/dev/ui/menu/element.d.ts +1 -2
- package/dist/dev/ui/menu/element.js.map +1 -1
- package/dist/dev/ui/menu/group-controller.js.map +1 -1
- package/dist/dev/ui/menu/group-label.d.ts +1 -2
- package/dist/dev/ui/menu/group-label.js.map +1 -1
- package/dist/dev/ui/menu/group.d.ts +1 -2
- package/dist/dev/ui/menu/group.js.map +1 -1
- package/dist/dev/ui/menu/item-indicator.d.ts +1 -2
- package/dist/dev/ui/menu/item.d.ts +1 -2
- package/dist/dev/ui/menu/item.js.map +1 -1
- package/dist/dev/ui/menu/radio-group.d.ts +1 -2
- package/dist/dev/ui/menu/radio-group.js.map +1 -1
- package/dist/dev/ui/menu/radio-item.d.ts +1 -2
- package/dist/dev/ui/menu/radio-item.js.map +1 -1
- package/dist/dev/ui/menu/separator.d.ts +1 -2
- package/dist/dev/ui/mute-button/element.d.ts +3 -4
- package/dist/dev/ui/mute-button/element.js.map +1 -1
- package/dist/dev/ui/pip-button/element.d.ts +4 -6
- package/dist/dev/ui/pip-button/element.js.map +1 -1
- package/dist/dev/ui/play-button/element.d.ts +3 -5
- package/dist/dev/ui/play-button/element.js +1 -1
- package/dist/dev/ui/play-button/element.js.map +1 -1
- package/dist/dev/ui/playback-rate-button/element.d.ts +4 -5
- package/dist/dev/ui/playback-rate-button/element.js +4 -2
- package/dist/dev/ui/playback-rate-button/element.js.map +1 -1
- package/dist/dev/ui/playback-rate-radio-group/element.d.ts +4 -5
- package/dist/dev/ui/playback-rate-radio-group/element.js.map +1 -1
- package/dist/dev/ui/popover/element.d.ts +1 -2
- package/dist/dev/ui/popover/element.js +4 -2
- package/dist/dev/ui/popover/element.js.map +1 -1
- package/dist/dev/ui/position-controller.js.map +1 -1
- package/dist/dev/ui/poster/element.d.ts +1 -2
- package/dist/dev/ui/poster/element.js.map +1 -1
- package/dist/dev/ui/quality-radio-group/element.d.ts +4 -5
- package/dist/dev/ui/quality-radio-group/element.js.map +1 -1
- package/dist/dev/ui/radio-group/context.d.ts +4 -3
- package/dist/dev/ui/radio-group/context.js +1 -0
- package/dist/dev/ui/radio-group/context.js.map +1 -1
- package/dist/dev/ui/radio-group/element.d.ts +1 -2
- package/dist/dev/ui/radio-group/element.js.map +1 -1
- package/dist/dev/ui/radio-options/controller.js.map +1 -1
- package/dist/dev/ui/seek-button/element.d.ts +2 -3
- package/dist/dev/ui/seek-button/element.js.map +1 -1
- package/dist/dev/ui/seek-indicator/element.d.ts +3 -4
- package/dist/dev/ui/seek-indicator/element.js +7 -1
- package/dist/dev/ui/seek-indicator/element.js.map +1 -1
- package/dist/dev/ui/seek-indicator/value.d.ts +1 -2
- package/dist/dev/ui/slider/buffer.d.ts +1 -2
- package/dist/dev/ui/slider/context.d.ts +4 -3
- package/dist/dev/ui/slider/context.js +1 -0
- package/dist/dev/ui/slider/context.js.map +1 -1
- package/dist/dev/ui/slider/element.d.ts +1 -2
- package/dist/dev/ui/slider/element.js.map +1 -1
- package/dist/dev/ui/slider/events.d.ts +4 -3
- package/dist/dev/ui/slider/fill.d.ts +1 -2
- package/dist/dev/ui/slider/preview.d.ts +1 -2
- package/dist/dev/ui/slider/preview.js.map +1 -1
- package/dist/dev/ui/slider/thumb.d.ts +1 -2
- package/dist/dev/ui/slider/thumb.js.map +1 -1
- package/dist/dev/ui/slider/thumbnail.d.ts +1 -2
- package/dist/dev/ui/slider/thumbnail.js.map +1 -1
- package/dist/dev/ui/slider/track.d.ts +1 -2
- package/dist/dev/ui/slider/value.d.ts +1 -2
- package/dist/dev/ui/slider/value.js.map +1 -1
- package/dist/dev/ui/status-announcer/element.d.ts +1 -2
- package/dist/dev/ui/status-announcer/element.js.map +1 -1
- package/dist/dev/ui/status-indicator/element.d.ts +9 -4
- package/dist/dev/ui/status-indicator/element.js +14 -1
- package/dist/dev/ui/status-indicator/element.js.map +1 -1
- package/dist/dev/ui/status-indicator/value.d.ts +1 -2
- package/dist/dev/ui/text/element.d.ts +4 -3
- package/dist/dev/ui/text/element.js +1 -0
- package/dist/dev/ui/text/element.js.map +1 -1
- package/dist/dev/ui/thumbnail/element.d.ts +5 -6
- package/dist/dev/ui/thumbnail/element.js +3 -2
- package/dist/dev/ui/thumbnail/element.js.map +1 -1
- package/dist/dev/ui/time/element.d.ts +1 -2
- package/dist/dev/ui/time/element.js.map +1 -1
- package/dist/dev/ui/time/group.d.ts +1 -2
- package/dist/dev/ui/time/separator.d.ts +1 -2
- package/dist/dev/ui/time-slider/chapter-title.d.ts +1 -2
- package/dist/dev/ui/time-slider/chapter-title.js.map +1 -1
- package/dist/dev/ui/time-slider/chapters.d.ts +1 -2
- package/dist/dev/ui/time-slider/chapters.js.map +1 -1
- package/dist/dev/ui/time-slider/element.d.ts +1 -2
- package/dist/dev/ui/time-slider/element.js.map +1 -1
- package/dist/dev/ui/title/element.d.ts +1 -2
- package/dist/dev/ui/title/element.js.map +1 -1
- package/dist/dev/ui/tooltip/context.d.ts +2 -2
- package/dist/dev/ui/tooltip/context.js +1 -0
- package/dist/dev/ui/tooltip/context.js.map +1 -1
- package/dist/dev/ui/tooltip/element.d.ts +1 -2
- package/dist/dev/ui/tooltip/element.js +4 -2
- package/dist/dev/ui/tooltip/element.js.map +1 -1
- package/dist/dev/ui/tooltip/group.d.ts +1 -2
- package/dist/dev/ui/tooltip/group.js.map +1 -1
- package/dist/dev/ui/tooltip/label.d.ts +1 -2
- package/dist/dev/ui/tooltip/label.js.map +1 -1
- package/dist/dev/ui/tooltip/shortcut.d.ts +1 -2
- package/dist/dev/ui/ui-element.d.ts +3 -3
- package/dist/dev/ui/ui-element.js.map +1 -1
- package/dist/dev/ui/volume-indicator/element.d.ts +3 -4
- package/dist/dev/ui/volume-indicator/element.js.map +1 -1
- package/dist/dev/ui/volume-indicator/fill.d.ts +1 -2
- package/dist/dev/ui/volume-indicator/value.d.ts +1 -2
- package/dist/dev/ui/volume-popover/element.d.ts +1 -2
- package/dist/dev/ui/volume-popover/element.js +1 -1
- package/dist/dev/ui/volume-popover/element.js.map +1 -1
- package/dist/dev/ui/volume-slider/element.d.ts +1 -2
- package/dist/dev/ui/volume-slider/element.js +1 -1
- package/dist/dev/ui/volume-slider/element.js.map +1 -1
- package/dist/dev/version.d.ts +21 -0
- package/dist/dev/version.js +29 -0
- package/dist/dev/version.js.map +1 -0
- package/docs/README.md +1 -1
- package/docs/guides/autoplay.md +10 -21
- package/docs/guides/background-video.md +74 -7
- package/docs/guides/browser-support.md +48 -36
- package/docs/guides/build-your-own-component.md +5 -5
- package/docs/guides/captions.md +46 -6
- package/docs/guides/casting.md +24 -8
- package/docs/guides/cdn.md +11 -10
- package/docs/guides/content-security-policy.md +29 -5
- package/docs/guides/controls.md +25 -10
- package/docs/guides/customize-skins.md +2 -2
- package/docs/guides/features.md +3 -1
- package/docs/guides/fullscreen.md +35 -8
- package/docs/guides/installation-cdn.md +5 -5
- package/docs/guides/installation-shadcn.md +4 -4
- package/docs/guides/installation-svelte.md +5 -5
- package/docs/guides/installation-vue.md +5 -5
- package/docs/guides/installation.md +5 -5
- package/docs/guides/internationalization.md +37 -28
- package/docs/guides/keyboard-shortcuts.md +27 -15
- package/docs/guides/live-streams.md +51 -13
- package/docs/guides/llms.txt +6 -5
- package/docs/guides/media-sources.md +8 -5
- package/docs/guides/migrate-from-media-chrome.md +182 -51
- package/docs/guides/migrate-from-mux-player.md +191 -116
- package/docs/guides/migrate-from-plyr.md +171 -81
- package/docs/guides/migrate-from-video-js-8.md +255 -190
- package/docs/guides/migrate-from-vidstack.md +865 -0
- package/docs/guides/mux-data.md +23 -9
- package/docs/guides/picture-in-picture.md +22 -16
- package/docs/guides/playback-errors.md +10 -7
- package/docs/guides/poster.md +32 -11
- package/docs/guides/presets.md +15 -5
- package/docs/guides/quality.md +44 -5
- package/docs/guides/self-hosting.md +5 -5
- package/docs/guides/skins.md +6 -4
- package/docs/guides/thumbnails.md +24 -14
- package/docs/guides/ui-components.md +1 -1
- package/docs/guides/user-preferences.md +38 -15
- package/docs/guides/v10-roadmap.md +1 -1
- package/docs/llms.txt +45 -11
- package/docs/reference/api/create-i18n.md +3 -3
- package/docs/reference/api/create-translator.md +1 -1
- package/docs/reference/api/feature-audio-track.md +1 -1
- package/docs/reference/api/feature-controls.md +2 -2
- package/docs/reference/api/feature-fullscreen.md +1 -2
- package/docs/reference/api/feature-pip.md +3 -4
- package/docs/reference/api/feature-playback.md +2 -3
- package/docs/reference/api/feature-quality.md +2 -2
- package/docs/reference/api/feature-remote-playback.md +1 -1
- package/docs/reference/api/feature-source.md +2 -8
- package/docs/reference/api/feature-text-tracks.md +6 -8
- package/docs/reference/api/feature-volume.md +1 -1
- package/docs/reference/api/find-locale-keys.md +32 -0
- package/docs/reference/api/get-locale-key.md +32 -0
- package/docs/reference/api/html-create-player.md +24 -26
- package/docs/reference/api/i18n-controller.md +1 -1
- package/docs/reference/api/is-text.md +33 -0
- package/docs/reference/api/llms.txt +23 -2
- package/docs/reference/api/load-locale.md +36 -0
- package/docs/reference/api/media-capabilities.md +255 -0
- package/docs/reference/api/player-controller.md +39 -20
- package/docs/reference/api/player-store.md +112 -0
- package/docs/reference/api/preset-audio.md +116 -0
- package/docs/reference/api/preset-background.md +103 -0
- package/docs/reference/api/preset-live-audio.md +119 -0
- package/docs/reference/api/preset-live-video.md +124 -0
- package/docs/reference/api/preset-video.md +123 -0
- package/docs/reference/api/register-i18n.md +13 -0
- package/docs/reference/api/resolve-adapter-type.md +98 -0
- package/docs/reference/api/resolve-mime-type.md +48 -0
- package/docs/reference/api/resolve-translation.md +36 -0
- package/docs/reference/api/translate-text.md +56 -0
- package/docs/reference/api/translation-phrases.md +13 -0
- package/docs/reference/api/ui-element.md +296 -0
- package/docs/reference/components/audio-compat-skin.md +33 -0
- package/docs/reference/components/{audio-minimal-skin.md → audio-neutral-skin.md} +6 -6
- package/docs/reference/components/audio-skin.md +2 -2
- package/docs/reference/components/background-video-skin.md +1 -1
- package/docs/reference/components/background-video.md +1 -1
- package/docs/reference/components/captions-button.md +1 -1
- package/docs/reference/components/captions-radio-group.md +1 -1
- package/docs/reference/components/cloudflare-video.md +1 -1
- package/docs/reference/components/controls.md +2 -2
- package/docs/reference/components/dash-video.md +1 -1
- package/docs/reference/components/fullscreen-button.md +1 -1
- package/docs/reference/components/google-cast.md +4 -4
- package/docs/reference/components/hls-audio.md +1 -1
- package/docs/reference/components/hls-background-video.md +1 -1
- package/docs/reference/components/hls-video.md +1 -1
- package/docs/reference/components/hlsjs-video.md +2 -2
- package/docs/reference/components/icons.md +130 -0
- package/docs/reference/components/live-audio-compat-skin.md +35 -0
- package/docs/reference/components/{live-audio-minimal-skin.md → live-audio-neutral-skin.md} +6 -6
- package/docs/reference/components/live-audio-skin.md +2 -2
- package/docs/reference/components/live-video-compat-skin.md +41 -0
- package/docs/reference/components/{live-video-minimal-skin.md → live-video-neutral-skin.md} +6 -6
- package/docs/reference/components/live-video-skin.md +2 -2
- package/docs/reference/components/llms.txt +16 -6
- package/docs/reference/components/menu.md +7 -2
- package/docs/reference/components/mux-audio.md +2 -2
- package/docs/reference/components/mux-background-video.md +1 -1
- package/docs/reference/components/mux-data.md +4 -4
- package/docs/reference/components/mux-video.md +4 -4
- package/docs/reference/components/native-hls-video.md +1 -1
- package/docs/reference/components/pip-button.md +2 -2
- package/docs/reference/components/player.md +26 -2
- package/docs/reference/components/popover.md +6 -8
- package/docs/reference/components/shaka-video.md +1 -1
- package/docs/reference/components/spotify-audio.md +1 -1
- package/docs/reference/components/status-indicator.md +27 -4
- package/docs/reference/components/thumbnail.md +1 -1
- package/docs/reference/components/tiktok-video.md +1 -1
- package/docs/reference/components/twitch-video.md +1 -1
- package/docs/reference/components/video-compat-skin.md +45 -0
- package/docs/reference/components/{video-minimal-skin.md → video-neutral-skin.md} +6 -6
- package/docs/reference/components/video-skin.md +2 -2
- package/docs/reference/components/vimeo-video.md +1 -1
- package/docs/reference/components/wistia-video.md +1 -1
- package/docs/reference/components/youtube-video.md +1 -1
- package/package.json +54 -42
- package/dist/default/define/audio/minimal-skin.css +0 -2048
- package/dist/default/define/audio/minimal-skin.js +0 -6
- package/dist/default/define/audio/minimal-skin2.js +0 -4
- package/dist/default/define/live-audio/minimal-skin.css +0 -1378
- package/dist/default/define/live-audio/minimal-skin.js +0 -6
- package/dist/default/define/live-audio/minimal-skin2.js +0 -4
- package/dist/default/define/live-video/minimal-skin.css +0 -2311
- package/dist/default/define/live-video/minimal-skin.js +0 -6
- package/dist/default/define/live-video/minimal-skin2.js +0 -4
- package/dist/default/define/video/minimal-skin.css +0 -3232
- package/dist/default/define/video/minimal-skin.js +0 -6
- package/dist/default/define/video/minimal-skin2.js +0 -4
- package/dist/default/extensions/media-extension-element.js +0 -54
- package/dist/default/icons/element/minimal/index.js +0 -1
- package/dist/default/icons/minimal/index.js +0 -26
- package/dist/default/internal/skins/minimal-audio/skin.css +0 -1977
- package/dist/default/internal/skins/minimal-live-audio/skin.css +0 -1307
- package/dist/default/internal/skins/minimal-live-video/skin.css +0 -2240
- package/dist/default/internal/skins/minimal-video/skin.css +0 -3161
- package/dist/default/presets/audio/minimal-skin.js +0 -19
- package/dist/default/presets/live-audio/minimal-skin.js +0 -19
- package/dist/default/presets/live-video/minimal-skin.js +0 -19
- package/dist/default/presets/video/minimal-skin.js +0 -19
- package/dist/dev/define/audio/minimal-skin.css +0 -2048
- package/dist/dev/define/audio/minimal-skin.d.ts +0 -1
- package/dist/dev/define/audio/minimal-skin.js +0 -8
- package/dist/dev/define/audio/minimal-skin.js.map +0 -1
- package/dist/dev/define/audio/minimal-skin2.js +0 -6
- package/dist/dev/define/audio/minimal-skin2.js.map +0 -1
- package/dist/dev/define/live-audio/minimal-skin.css +0 -1378
- package/dist/dev/define/live-audio/minimal-skin.d.ts +0 -1
- package/dist/dev/define/live-audio/minimal-skin.js +0 -8
- package/dist/dev/define/live-audio/minimal-skin.js.map +0 -1
- package/dist/dev/define/live-audio/minimal-skin2.js +0 -6
- package/dist/dev/define/live-audio/minimal-skin2.js.map +0 -1
- package/dist/dev/define/live-video/minimal-skin.css +0 -2311
- package/dist/dev/define/live-video/minimal-skin.d.ts +0 -1
- package/dist/dev/define/live-video/minimal-skin.js +0 -8
- package/dist/dev/define/live-video/minimal-skin.js.map +0 -1
- package/dist/dev/define/live-video/minimal-skin2.js +0 -6
- package/dist/dev/define/live-video/minimal-skin2.js.map +0 -1
- package/dist/dev/define/video/minimal-skin.css +0 -3232
- package/dist/dev/define/video/minimal-skin.d.ts +0 -1
- package/dist/dev/define/video/minimal-skin.js +0 -8
- package/dist/dev/define/video/minimal-skin.js.map +0 -1
- package/dist/dev/define/video/minimal-skin2.js +0 -6
- package/dist/dev/define/video/minimal-skin2.js.map +0 -1
- package/dist/dev/extensions/media-extension-element.d.ts +0 -29
- package/dist/dev/extensions/media-extension-element.js +0 -56
- package/dist/dev/extensions/media-extension-element.js.map +0 -1
- package/dist/dev/icons/dist/html/minimal/index.d.ts +0 -29
- package/dist/dev/icons/element/minimal/index.d.ts +0 -1
- package/dist/dev/icons/element/minimal/index.js +0 -1
- package/dist/dev/icons/minimal/index.js +0 -26
- package/dist/dev/internal/skins/minimal-audio/skin.css +0 -1977
- package/dist/dev/internal/skins/minimal-live-audio/skin.css +0 -1307
- package/dist/dev/internal/skins/minimal-live-video/skin.css +0 -2240
- package/dist/dev/internal/skins/minimal-video/skin.css +0 -3161
- package/dist/dev/presets/audio/minimal-skin.d.ts +0 -16
- package/dist/dev/presets/audio/minimal-skin.js +0 -21
- package/dist/dev/presets/audio/minimal-skin.js.map +0 -1
- package/dist/dev/presets/live-audio/minimal-skin.d.ts +0 -16
- package/dist/dev/presets/live-audio/minimal-skin.js +0 -21
- package/dist/dev/presets/live-audio/minimal-skin.js.map +0 -1
- package/dist/dev/presets/live-video/minimal-skin.d.ts +0 -16
- package/dist/dev/presets/live-video/minimal-skin.js +0 -21
- package/dist/dev/presets/live-video/minimal-skin.js.map +0 -1
- package/dist/dev/presets/video/minimal-skin.d.ts +0 -16
- package/dist/dev/presets/video/minimal-skin.js +0 -21
- package/dist/dev/presets/video/minimal-skin.js.map +0 -1
- /package/dist/dev/define/audio/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
- /package/dist/dev/define/live-audio/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
- /package/dist/dev/define/live-video/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
- /package/dist/dev/define/video/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
- /package/dist/dev/icons/dist/element/{minimal → compat}/index.d.ts +0 -0
|
@@ -2,46 +2,50 @@
|
|
|
2
2
|
|
|
3
3
|
Move a Video.js 8 integration to v10, mapping the options object, techs, plugins, and player API onto composed components
|
|
4
4
|
|
|
5
|
-
Video.js 8
|
|
5
|
+
Move your Video.js 8 setup to v10 by replacing `videojs()` with a player, media component, and skin. This guide maps your options, techs, plugins, and imperative calls to those pieces.
|
|
6
6
|
|
|
7
|
-
Video.js
|
|
7
|
+
Video.js 10 ships as scoped `@videojs/*` packages. The `video.js` npm package remains Video.js 8; its [repository](https://github.com/videojs/video.js) and [docs](https://legacy.videojs.org) remain available.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
>
|
|
11
|
-
> This isn’t a version bump you can do with a find-and-replace. Plan it as a rewrite of your player setup, and read this guide before you estimate it.
|
|
9
|
+
## Before you migrate
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
- List the options, techs, plugins, custom controls, and event handlers your app uses.
|
|
12
|
+
- Check [Known gaps](#known-gaps), especially ads and playlists, before replacing a working player. Plan to rewrite plugins that have no equivalent.
|
|
13
|
+
- Keep your existing media URLs, source formats, tracks, and required behavior. The first example uses an MP4 file. For an adaptive stream or an embed, use the matching media component.
|
|
14
|
+
- Choose an installation method and playback engine that fit your app and supported browsers. See [Installation](./installation.md) and [Techs become media components](#techs-become-media-components).
|
|
14
15
|
|
|
15
|
-
##
|
|
16
|
+
## AI Quickstart
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
Paste this prompt into your coding agent:
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
```
|
|
21
|
+
Migrate this project's Video.js 8 player to Video.js v10 for HTML. Use @videojs/html or its CDN bundles for a page without a build step.
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
Run `npx @videojs/cli agents skills` to get the Video.js skill installation instructions. Follow the printed steps for your agent. If they require a session reload, reload the session and continue with this prompt. If you can't run commands, use the installation instructions at https://github.com/videojs/skills. Use the skill throughout this migration.
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
Read the migration guide at https://videojs.org/docs/framework/html/guides/migrate-from-video-js-8, including its Known gaps section. Inspect the existing player and list its media URLs, source formats, tracks, options, custom controls, event handlers, and integrations. Compare that list with the known gaps and report unsupported requirements before changing code. Keep the existing media URLs and required behavior throughout the migration.
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
For installation guidance, read https://videojs.org/docs/framework/html/llms.txt and follow its link to the installation guide. Keep using that online index for a CDN installation.
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
From the application root, run `npx @videojs/cli agents init` without flags to list installation options and their accepted values.
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
```
|
|
31
|
+
Choose values for these options:
|
|
32
|
+
- --media and --source-url: the existing content and playback requirements.
|
|
33
|
+
- --method: the installation method.
|
|
34
|
+
- --preset, --skin, and --extensions: the player UI and integrations.
|
|
35
|
+
|
|
36
|
+
Add those options to `npx @videojs/cli agents init --framework html --project existing` and run the command to print the installation plan. Follow any version-mismatch notice. Both CLI commands print instructions without changing project files. Use the printed plan to install Video.js and configure the player.
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
After installing a package, switch to node_modules/@videojs/html/docs/llms.txt for documentation matching its version.
|
|
39
|
+
|
|
40
|
+
Implement the migration. Then verify playback, captions, controls, and any analytics integration on every browser the project supports.
|
|
41
|
+
```
|
|
38
42
|
|
|
39
43
|
## Your first player
|
|
40
44
|
|
|
41
45
|
Here’s a standard v8 setup: one file, captions, a poster, and the default skin.
|
|
42
46
|
|
|
43
47
|
```html
|
|
44
|
-
<link href="https://vjs.zencdn.net/8.
|
|
48
|
+
<link href="https://vjs.zencdn.net/8.23.6/video-js.css" rel="stylesheet" />
|
|
45
49
|
|
|
46
50
|
<video
|
|
47
51
|
id="my-video"
|
|
@@ -55,68 +59,95 @@ Here’s a standard v8 setup: one file, captions, a poster, and the default skin
|
|
|
55
59
|
<track kind="captions" src="/captions/en.vtt" srclang="en" label="English" default />
|
|
56
60
|
</video>
|
|
57
61
|
|
|
58
|
-
<script src="https://vjs.zencdn.net/8.
|
|
62
|
+
<script src="https://vjs.zencdn.net/8.23.6/video.min.js"></script>
|
|
59
63
|
```
|
|
60
64
|
|
|
61
|
-
|
|
65
|
+
Load the video [preset](./presets.md) from the CDN and put your media inside its skin:
|
|
62
66
|
|
|
63
67
|
```html
|
|
64
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
68
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/video.js"></script>
|
|
65
69
|
|
|
66
70
|
<video-player poster="/poster.jpg">
|
|
67
|
-
<video-skin
|
|
71
|
+
<video-skin style="aspect-ratio: 16 / 9">
|
|
68
72
|
<video src="/video.mp4" preload="auto" playsinline>
|
|
69
73
|
<track kind="captions" src="/captions/en.vtt" srclang="en" label="English" default />
|
|
70
|
-
<track kind="metadata" src="/storyboard.vtt" label="thumbnails" default />
|
|
71
74
|
</video>
|
|
72
75
|
</video-skin>
|
|
73
76
|
</video-player>
|
|
74
77
|
```
|
|
75
78
|
|
|
76
|
-
With a bundler, the
|
|
79
|
+
With a bundler, install the HTML package and import the player and skin:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npm install @videojs/html
|
|
83
|
+
```
|
|
77
84
|
|
|
78
85
|
```js
|
|
79
86
|
import '@videojs/html/video/player';
|
|
80
87
|
import '@videojs/html/video/skin';
|
|
81
88
|
```
|
|
82
89
|
|
|
83
|
-
|
|
90
|
+
Apply these changes to your existing markup:
|
|
91
|
+
|
|
92
|
+
- **No `class="video-js"`, no `data-setup`, no `videojs()` call.** Importing the player and skin registers their custom elements. The browser activates these elements when it upgrades them. Video.js does not scan the page for players.
|
|
93
|
+
- **No `controls` attribute.** The skin provides the controls. Include a skin to show controls. Leave it out for a player with no UI.
|
|
94
|
+
- **Move the poster URL to the player.** Set `poster` on `<video-player>`. The skin controls how the poster appears. To supply your own image element, see [Add a poster and loading placeholder](./poster.md).
|
|
95
|
+
- **Keep your existing tracks.** Captions and subtitles remain native tracks; the skin supplies their controls.
|
|
96
|
+
|
|
97
|
+
For the Neutral skin, replace `<video-skin>` with `<video-neutral-skin>`. Load `video-neutral.js` from the CDN, or replace the bundler skin import with `@videojs/html/video/neutral-skin`.
|
|
98
|
+
|
|
99
|
+
If you have chapter tracks or thumbnail tracks (`kind="metadata" label="thumbnails"`), add `default` to each track so the browser loads its cues. Keep each track’s existing `src` URL.
|
|
100
|
+
|
|
101
|
+
When enabling captions without a previous selection in this player instance, `toggleSubtitles()` prefers a track matching `navigator.language`, then falls back to the first available caption or subtitle track. For an authored track that should show on load, add `default`. See [Show captions and subtitles](./captions.md).
|
|
102
|
+
|
|
103
|
+
## Three pieces instead of one
|
|
104
|
+
|
|
105
|
+
Use these three pieces when deciding where a v8 option belongs:
|
|
106
|
+
|
|
107
|
+
**The player** is the outer custom element. It holds state and shares it with descendants. Its [features](./features.md) determine the available state and actions.
|
|
84
108
|
|
|
85
|
-
|
|
86
|
-
- **No `controls` attribute.** The skin *is* the controls. Including a skin is how you ask for them, which is also how you opt out: leave it out and you get a player with no UI.
|
|
87
|
-
- **The poster is player metadata, not a media attribute.** Set `poster` on `<video-player>`, and the skin, not the browser, controls how it appears. For more advanced control (like supplying your own image element), see [Add a poster and loading placeholder](./poster.md).
|
|
88
|
-
- **Your `<track>` elements don’t change.** Captions, subtitles, chapters, and thumbnails are all still tracks, and the skin shows the matching controls when it finds them.
|
|
109
|
+
**The media** plays the content and replaces the v8 tech. Choose a [media component](./media-sources.md) for your format or provider. Player controls use the capabilities that media exposes.
|
|
89
110
|
|
|
90
|
-
|
|
111
|
+
**The skin** supplies the controls, poster, menus, shortcuts, and gestures. Use a packaged [skin](./skins.md) as it is, or restyle it. To change its layout or interactions, install its source.
|
|
91
112
|
|
|
92
113
|
## Where your options went
|
|
93
114
|
|
|
94
|
-
|
|
115
|
+
Move each option to the part of your v10 setup that owns it:
|
|
95
116
|
|
|
96
|
-
1. **Media
|
|
117
|
+
1. **Media settings.** Set native attributes or props on the media.
|
|
97
118
|
2. **Player metadata.** The title and poster belong to player state, which lets the skin or your custom UI render them.
|
|
98
|
-
3. **Your CSS.**
|
|
99
|
-
4. **Composition.**
|
|
119
|
+
3. **Your CSS.** Set sizing, aspect ratio, and responsive behavior in your own CSS.
|
|
120
|
+
4. **Composition.** Choose components to determine which controls appear, which shortcuts run, and which language the player uses.
|
|
100
121
|
|
|
101
122
|
### Media attributes
|
|
102
123
|
|
|
103
|
-
|
|
124
|
+
Move native media settings onto the media component.
|
|
104
125
|
|
|
105
126
|
| Video.js 8 | Video.js v10 |
|
|
106
127
|
| --- | --- |
|
|
107
|
-
| `autoplay
|
|
128
|
+
| `autoplay` (boolean), `muted`, `loop`, `preload`, `playsinline`, `crossorigin` | the same attributes on your media |
|
|
108
129
|
| `sources: [{ src, type }]` | `src`, or `<source>` children for progressive fallback |
|
|
109
|
-
| `disablePictureInPicture` | `disablepictureinpicture` |
|
|
130
|
+
| `disablePictureInPicture` | `disablepictureinpicture` on your media |
|
|
131
|
+
|
|
132
|
+
Video.js uses native autoplay. For v8’s string-valued `autoplay` options:
|
|
133
|
+
|
|
134
|
+
- `'muted'`: set both `autoplay` and `muted` on the media (`autoPlay` and `muted` on video-backed React media).
|
|
135
|
+
- `'play'`: to preserve v8’s explicit playback request, call `play()` on the media when it fires `loadstart` and handle rejection.
|
|
136
|
+
- `'any'`: on `loadstart`, call `play()` on the media. If the returned promise rejects, mute the media and call `play()` again. Implement this fallback in your app.
|
|
137
|
+
|
|
138
|
+
Keep a manual play control available if autoplay fails. See [Handle autoplay](./autoplay.md).
|
|
110
139
|
|
|
111
140
|
### Player metadata
|
|
112
141
|
|
|
113
142
|
| Video.js 8 | Video.js v10 |
|
|
114
143
|
| --- | --- |
|
|
115
144
|
| `poster` | `poster` on `<video-player>` |
|
|
116
|
-
| `posterImage: false` |
|
|
145
|
+
| `posterImage: false` | set `poster=""` on the player, or remove the poster component from your local skin |
|
|
117
146
|
| the title in `TitleBar` | `content-title` on `<video-player>`, rendered with the `<media-title>` element |
|
|
118
147
|
|
|
119
|
-
|
|
148
|
+
If you do not set `poster` on the player, the skin uses a poster supplied by the media, such as a generated Mux poster. Set `poster=""` to turn off this fallback.
|
|
149
|
+
|
|
150
|
+
Set a poster URL on the player for the skin to display:
|
|
120
151
|
|
|
121
152
|
```html
|
|
122
153
|
<video-player poster="/poster.jpg">
|
|
@@ -126,11 +157,11 @@ The poster belongs to player state rather than the media, which lets the skin co
|
|
|
126
157
|
</video-player>
|
|
127
158
|
```
|
|
128
159
|
|
|
129
|
-
The packaged video and live-video skins already include the [`<media-title>`](../reference/components/title.md) element, so setting `content-title` on the player displays it. Audio skins do not include a title.
|
|
160
|
+
The packaged video and live-video skins already include the [`<media-title>`](../reference/components/title.md) element, so setting `content-title` on the player displays it. Audio skins do not include a title. In a custom layout or installed skin source, add `<media-title>` where you want the title to appear. For poster options such as placeholders and custom image elements, see [Add a poster and loading placeholder](./poster.md) and the [`<media-poster>`](../reference/components/poster.md) reference.
|
|
130
161
|
|
|
131
162
|
### Your CSS
|
|
132
163
|
|
|
133
|
-
|
|
164
|
+
Set sizing and aspect ratio on the skin with CSS:
|
|
134
165
|
|
|
135
166
|
| Video.js 8 | Video.js v10 |
|
|
136
167
|
| --- | --- |
|
|
@@ -139,11 +170,11 @@ v8 had a small sizing language of its own. v10 doesn’t, because CSS already ha
|
|
|
139
170
|
| `aspectRatio: '16:9'` | `aspect-ratio: 16 / 9` |
|
|
140
171
|
| `width`, `height` | `width`, `height` |
|
|
141
172
|
| `fill: true` | `width: 100%; height: 100%` |
|
|
142
|
-
| `breakpoints` | the skins use container queries internally; use your own for your layout |
|
|
173
|
+
| `breakpoints` | the skins use container queries internally; use your own container queries for the rest of your layout |
|
|
143
174
|
|
|
144
175
|
### Composition
|
|
145
176
|
|
|
146
|
-
These
|
|
177
|
+
These options need a migration decision. Each row links to the relevant guidance or identifies a gap.
|
|
147
178
|
|
|
148
179
|
| Video.js 8 | Where it lives now |
|
|
149
180
|
| --- | --- |
|
|
@@ -159,42 +190,57 @@ These are the ones that need a decision rather than a rename, so each has a sect
|
|
|
159
190
|
| `spatialNavigation` | no equivalent; see [Known gaps](#known-gaps) |
|
|
160
191
|
| `inactivityTimeout` | delay not configurable yet ([#1728](https://github.com/videojs/v10/issues/1728)); `inactivityTimeout: 0` maps to `visibility="always"` on the controls component |
|
|
161
192
|
| `errorDisplay`, `notSupportedMessage` | the skins include an error dialog |
|
|
162
|
-
| `ModalDialog` | compose a [dialog](../reference/components/dialog.md);
|
|
193
|
+
| `ModalDialog` | compose a [dialog](../reference/components/dialog.md); when the dialog opens or closes, your application handles any playback changes |
|
|
163
194
|
|
|
164
195
|
## Techs become media components
|
|
165
196
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
v10 replaces the whole mechanism with a choice you make in markup. You pick the [media component](./media-sources.md) that plays your format, and that’s the tech decision.
|
|
197
|
+
Choose a media component for each format or provider your v8 techs handled. Check its supported features before replacing a streaming engine.
|
|
169
198
|
|
|
170
199
|
| What you’re playing | Video.js 8 | Video.js v10 |
|
|
171
200
|
| --- | --- | --- |
|
|
172
201
|
| MP4, WebM | `techOrder: ['html5']` | a plain `<video>` |
|
|
173
|
-
| HLS | VHS | [
|
|
174
|
-
| HLS
|
|
175
|
-
| HLS, native only |
|
|
176
|
-
| DASH | VHS | [DASH video](../reference/components/dash-video.md) |
|
|
202
|
+
| HLS | VHS | [hls.js video](../reference/components/hlsjs-video.md) |
|
|
203
|
+
| HLS with fMP4/CMAF segments | VHS | [SPF HLS video](../reference/components/hls-video.md), after checking its limitations |
|
|
204
|
+
| HLS, native only | native HLS without VHS fallback | [native HLS video](../reference/components/native-hls-video.md) |
|
|
205
|
+
| DASH without DRM | VHS | [DASH video](../reference/components/dash-video.md) |
|
|
206
|
+
| DASH with DRM | VHS and `videojs-contrib-eme` | [Shaka video](../reference/components/shaka-video.md); see [DRM](#drm) |
|
|
177
207
|
| YouTube, Vimeo | a tech plugin | the YouTube and Vimeo components |
|
|
178
208
|
| Mux | a tech plugin | [Mux Video](../reference/components/mux-video.md) |
|
|
179
209
|
|
|
180
|
-
|
|
210
|
+
`html5.vhs.overrideNative: false` lets v8 use native HLS where available while retaining VHS elsewhere. It does not mean native-only playback. Choose an HLS engine that supports your required browsers; native HLS has no fallback on browsers that cannot play the stream themselves. See [Browser support](./browser-support.md).
|
|
211
|
+
|
|
212
|
+
For an existing VHS integration, start with hls.js video and test your streams on supported browsers. This is also the component selected by the installation CLI’s `--media hls` option.
|
|
213
|
+
|
|
214
|
+
The SPF HLS component is an alternative for fMP4/CMAF streams. It does not support MPEG-TS segments, raw ADTS AAC, or whole-segment AES-128 encryption. It supports DRM through `source.drm`. Verify your license configuration and browser support with the engine you choose. See [HLS video](../reference/components/hls-video.md) and [hls.js video](../reference/components/hlsjs-video.md).
|
|
215
|
+
|
|
216
|
+
Each media component needs its own import. For package-manager installations, install the matching adapter package:
|
|
217
|
+
|
|
218
|
+
| Media | Package |
|
|
219
|
+
| --- | --- |
|
|
220
|
+
| hls.js video | `@videojs/hlsjs-video` |
|
|
221
|
+
| DASH | `@videojs/dash-video` |
|
|
222
|
+
| Mux video / audio | `@videojs/mux-video` / `@videojs/mux-audio` |
|
|
223
|
+
| YouTube | `@videojs/youtube-video` |
|
|
224
|
+
| Vimeo | `@videojs/vimeo-video` |
|
|
225
|
+
| Shaka | `@videojs/shaka-video` |
|
|
226
|
+
| Wistia | `@videojs/wistia-video` |
|
|
181
227
|
|
|
182
|
-
|
|
228
|
+
SPF and native HLS are included as dependencies of the HTML and React packages.
|
|
183
229
|
|
|
184
|
-
For
|
|
230
|
+
For hls.js video from the CDN:
|
|
185
231
|
|
|
186
232
|
```html
|
|
187
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.
|
|
233
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/media/hlsjs-video.js"></script>
|
|
188
234
|
```
|
|
189
235
|
|
|
190
|
-
With a package manager, install
|
|
236
|
+
With a package manager, install the adapter and import its HTML registration:
|
|
191
237
|
|
|
192
238
|
```bash
|
|
193
|
-
npm install @videojs/html @videojs/
|
|
239
|
+
npm install @videojs/html @videojs/hlsjs-video
|
|
194
240
|
```
|
|
195
241
|
|
|
196
242
|
```ts
|
|
197
|
-
import '@videojs/html/media/
|
|
243
|
+
import '@videojs/html/media/hlsjs-video';
|
|
198
244
|
```
|
|
199
245
|
|
|
200
246
|
Then swap the tag:
|
|
@@ -202,118 +248,96 @@ Then swap the tag:
|
|
|
202
248
|
```html
|
|
203
249
|
<video-player>
|
|
204
250
|
<video-skin>
|
|
205
|
-
<
|
|
251
|
+
<hlsjs-video src="/stream.m3u8" playsinline></hlsjs-video>
|
|
206
252
|
</video-skin>
|
|
207
253
|
</video-player>
|
|
208
254
|
```
|
|
209
255
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
Your VHS tuning options don’t have direct equivalents. Rendition capping, bandwidth hints, and the rest are engine-specific, so they belong to whichever engine you chose rather than to a shared options object.
|
|
256
|
+
Your VHS tuning options don’t have direct equivalents. Settings such as rendition capping and bandwidth hints are engine-specific. Configure them through the engine you chose. Video.js has no shared options object for these settings.
|
|
213
257
|
|
|
214
258
|
## Customize your player
|
|
215
259
|
|
|
216
|
-
In v8,
|
|
260
|
+
In v8, you customized the player with options, `addChild`, component subclasses, or CSS overrides on `.vjs-*` selectors. In v10, choose a skin, restyle it with CSS custom properties, or edit its source. Try these approaches in order.
|
|
217
261
|
|
|
218
262
|
### Level 1: pick a skin
|
|
219
263
|
|
|
220
|
-
The
|
|
264
|
+
The Default skin groups settings in a menu. The Neutral skin has a compact layout like v8’s control bar. Both bring controls, tooltips, captions, keyboard shortcuts, touch gestures, and a settings menu that appears when there’s something to put in it. See [Skins](./skins.md).
|
|
221
265
|
|
|
222
|
-
Both
|
|
266
|
+
Both include AirPlay and Cast buttons. Follow [Cast to AirPlay and Chromecast](./casting.md) to add the Google Cast extension.
|
|
223
267
|
|
|
224
268
|
### Level 2: restyle it
|
|
225
269
|
|
|
226
|
-
|
|
270
|
+
Replace your v8 selectors with the skin’s documented custom properties where they cover the change:
|
|
227
271
|
|
|
228
272
|
```css
|
|
229
273
|
/* Video.js 8 */
|
|
230
274
|
.video-js .vjs-play-progress {
|
|
231
275
|
background-color: rebeccapurple;
|
|
232
276
|
}
|
|
277
|
+
```
|
|
233
278
|
|
|
234
|
-
|
|
279
|
+
```css
|
|
280
|
+
/* Video.js HTML */
|
|
235
281
|
video-player {
|
|
236
282
|
--media-accent-color: rebeccapurple;
|
|
237
283
|
}
|
|
238
284
|
```
|
|
239
285
|
|
|
240
|
-
`--media-accent-color` reaches the sliders, the active buttons, and the accent surfaces at once. Video.js
|
|
286
|
+
`--media-accent-color` reaches the sliders, the active buttons, and the accent surfaces at once. Video.js picks a readable text color for content on the accent color. To choose that text color yourself, set `--media-accent-text-color`. `--media-border-radius` rounds the player’s corners. `--media-scale-unit` scales the whole control bar, like v8’s `font-size` technique for sizing controls. [Customize skins](./customize-skins.md#style-a-packaged-skin) has the full list.
|
|
241
287
|
|
|
242
288
|
### Level 3: edit skin source
|
|
243
289
|
|
|
244
|
-
|
|
290
|
+
To migrate `controlBar`, `addChild`, or custom component layouts, add the closest skin’s source to your project. The installed TypeScript and styles need a build step. A CDN-only page must add a build step before it can use this source. Follow [Customize skins](./customize-skins.md#style-skin-source) for installation and file locations.
|
|
245
291
|
|
|
246
|
-
|
|
292
|
+
Keep the player and media imports. Replace the packaged skin import with the installed `skin.ts` module, then use the markup from `skin.html` around your media. The module registers the elements and loads the local stylesheet.
|
|
247
293
|
|
|
248
|
-
|
|
294
|
+
To remove the picture-in-picture button, remove its markup from the installed controls layout. Keep the other controls’ contents, classes, and styles.
|
|
249
295
|
|
|
250
|
-
|
|
251
|
-
import '@videojs/html/video/player';
|
|
252
|
-
import '@videojs/html/video/skin';
|
|
253
|
-
```
|
|
296
|
+
Move `userActions.hotkeys` customizations into the local hotkey declarations. Move click and double-click customizations into the gesture declarations. The installed skin includes both; edit those files to preserve the interactions you need.
|
|
254
297
|
|
|
255
|
-
|
|
298
|
+
For a control bar built from scratch, follow [UI components](./ui-components.md). Individual controls supply behavior and accessible names. You supply their visible contents, layout, and CSS.
|
|
256
299
|
|
|
257
|
-
|
|
258
|
-
<video-player>
|
|
259
|
-
<media-container>
|
|
260
|
-
<video src="/video.mp4" playsinline></video>
|
|
261
|
-
|
|
262
|
-
<media-poster><img src="/poster.jpg" alt="" decoding="async" /></media-poster>
|
|
263
|
-
|
|
264
|
-
<media-controls>
|
|
265
|
-
<media-controls-content>
|
|
266
|
-
<media-play-button></media-play-button>
|
|
267
|
-
<media-mute-button></media-mute-button>
|
|
268
|
-
<media-volume-slider></media-volume-slider>
|
|
269
|
-
<media-time type="current"></media-time>
|
|
270
|
-
<media-time-slider>
|
|
271
|
-
<media-slider-track>
|
|
272
|
-
<media-slider-fill></media-slider-fill>
|
|
273
|
-
<media-slider-buffer></media-slider-buffer>
|
|
274
|
-
</media-slider-track>
|
|
275
|
-
<media-slider-thumb></media-slider-thumb>
|
|
276
|
-
</media-time-slider>
|
|
277
|
-
<media-time type="duration"></media-time>
|
|
278
|
-
<media-fullscreen-button></media-fullscreen-button>
|
|
279
|
-
<!-- No media-pip-button, so no picture-in-picture control renders. -->
|
|
280
|
-
</media-controls-content>
|
|
281
|
-
</media-controls>
|
|
282
|
-
|
|
283
|
-
<media-hotkey keys="Space" action="togglePaused"></media-hotkey>
|
|
284
|
-
<media-hotkey keys="f" action="toggleFullscreen"></media-hotkey>
|
|
285
|
-
<media-hotkey keys="ArrowRight" action="seekStep" value="5"></media-hotkey>
|
|
286
|
-
<media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
|
|
287
|
-
|
|
288
|
-
<media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
|
|
289
|
-
</media-container>
|
|
290
|
-
</video-player>
|
|
291
|
-
```
|
|
300
|
+
## Plugins
|
|
292
301
|
|
|
293
|
-
|
|
302
|
+
v10 has no `videojs.registerPlugin`, `player.myPlugin()`, or plugin lifecycle. Audit each plugin and plan its replacement:
|
|
294
303
|
|
|
295
|
-
|
|
304
|
+
- **Formats and techs** (`videojs-contrib-*`, YouTube, Vimeo, Mux). Replace them with the matching [media component](#techs-become-media-components).
|
|
305
|
+
- **DRM** (`videojs-contrib-eme`, `keySystems`). Configure the media source’s license servers; see [DRM](#drm). Plugin callbacks and custom license requests require engine-specific migration.
|
|
306
|
+
- **UI additions** (extra buttons, overlays, custom control bars). Rebuild them in local skin source or with [your own component](./build-your-own-component.md).
|
|
307
|
+
- **Workarounds** for v8 limitations. Check whether the limitation still exists before porting the workaround.
|
|
308
|
+
- **Missing features** such as ads and playlists. Check [Known gaps](#known-gaps) before scheduling the migration. An ads-dependent player has no built-in replacement today.
|
|
296
309
|
|
|
297
|
-
|
|
310
|
+
### DRM
|
|
298
311
|
|
|
299
|
-
|
|
312
|
+
For protected DASH, use Shaka video. The dash.js component has no `source.drm` input. For protected HLS, choose an engine that supports your key systems and browsers; see [DRM protected sources](./media-sources.md#drm-protected-sources).
|
|
300
313
|
|
|
301
|
-
|
|
314
|
+
Move license URLs from v8’s `keySystems` configuration to `source.drm`, keyed by EME key system ID. FairPlay also needs `serverCertificateUrl` unless its CDM is pre-provisioned. Custom `getLicense` callbacks and license authentication do not transfer automatically. Reimplement them with your chosen engine’s APIs, then verify playback before you switch.
|
|
302
315
|
|
|
303
|
-
|
|
316
|
+
The examples configure Widevine. Replace both URL placeholders and add every key system your supported browsers need.
|
|
304
317
|
|
|
305
|
-
-
|
|
306
|
-
- **UI additions** (extra buttons, overlays, custom control bars). Rebuild them by editing the skin source in your project, or with [your own component](./build-your-own-component.md). This is usually less code than the plugin was.
|
|
307
|
-
- **Workarounds** for v8 limitations. Check whether the limitation still exists before you port anything.
|
|
308
|
-
- **Genuinely missing features** (ads, playlists). These need real work, and some have no home yet. Get them on the list early, because they’ll drive your timeline.
|
|
318
|
+
With a bundler, install `@videojs/shaka-video` and import `@videojs/html/media/shaka-video`. From the CDN, load `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/media/shaka-video.js` in a `<script type="module">` tag. Then replace the media element inside your player’s skin with:
|
|
309
319
|
|
|
310
|
-
|
|
320
|
+
```html
|
|
321
|
+
<shaka-video id="protected-media"></shaka-video>
|
|
322
|
+
```
|
|
311
323
|
|
|
312
|
-
|
|
324
|
+
Run this module after the player markup:
|
|
325
|
+
|
|
326
|
+
```js
|
|
327
|
+
await customElements.whenDefined('shaka-video');
|
|
328
|
+
document.querySelector('#protected-media').source = {
|
|
329
|
+
src: 'YOUR_DASH_MANIFEST_URL',
|
|
330
|
+
drm: {
|
|
331
|
+
'com.widevine.alpha': { licenseUrl: 'YOUR_WIDEVINE_LICENSE_URL' },
|
|
332
|
+
},
|
|
333
|
+
};
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
## Read and control the player
|
|
313
337
|
|
|
314
338
|
### Events
|
|
315
339
|
|
|
316
|
-
Your media element is a real media element, so every event you already listen for still fires on it.
|
|
340
|
+
Your media element is a real media element, so every event you already listen for still fires on it. Keep your listeners, and attach them to the media element instead of the v8 player.
|
|
317
341
|
|
|
318
342
|
```js
|
|
319
343
|
// Video.js 8
|
|
@@ -325,140 +349,181 @@ const video = document.querySelector('video');
|
|
|
325
349
|
video.addEventListener('timeupdate', () => console.log(video.currentTime));
|
|
326
350
|
```
|
|
327
351
|
|
|
328
|
-
|
|
352
|
+
Map v8’s player-specific events separately:
|
|
353
|
+
|
|
354
|
+
| Video.js 8 event | Video.js v10 |
|
|
355
|
+
| --- | --- |
|
|
356
|
+
| `useractive`, `userinactive` | Read `userActive` from player state; use `controlsVisible` for whether controls are shown. |
|
|
357
|
+
| `texttrackchange` | Read `textTrackList` from player state. |
|
|
358
|
+
| `playerresize` | Observe your skin or container with `ResizeObserver`. There is no player size state. |
|
|
329
359
|
|
|
330
360
|
### Player state
|
|
331
361
|
|
|
332
362
|
Use [`PlayerController`](../reference/api/player-controller.md) inside a custom element. Give it a selector for the feature you care about and it keeps your element in sync as that state changes:
|
|
333
363
|
|
|
334
364
|
```js
|
|
335
|
-
import { PlayerController, playerContext,
|
|
365
|
+
import { PlayerController, playerContext, selectTime, UIElement } from '@videojs/html';
|
|
336
366
|
|
|
337
|
-
class MyElapsed extends
|
|
367
|
+
class MyElapsed extends UIElement {
|
|
338
368
|
#time = new PlayerController(this, playerContext, selectTime);
|
|
369
|
+
|
|
370
|
+
update(changed) {
|
|
371
|
+
super.update(changed);
|
|
372
|
+
this.textContent = `Elapsed: ${(this.#time.value?.currentTime ?? 0).toFixed(1)} s`;
|
|
373
|
+
}
|
|
339
374
|
}
|
|
375
|
+
|
|
376
|
+
customElements.define('my-elapsed', MyElapsed);
|
|
340
377
|
```
|
|
341
378
|
|
|
342
|
-
|
|
379
|
+
Render it inside your existing `<video-player>` so it can read that player’s state:
|
|
343
380
|
|
|
344
|
-
|
|
381
|
+
```html
|
|
382
|
+
<my-elapsed></my-elapsed>
|
|
383
|
+
```
|
|
345
384
|
|
|
346
|
-
|
|
385
|
+
### Drive playback
|
|
386
|
+
|
|
387
|
+
Replace v8 accessor methods with [player state](../reference/api/player-store.md) for reads. Use store actions or media properties for writes. Video.js updates player state from media events, so native calls such as `media.play()` and assignments such as `media.currentTime = 10` update the controls.
|
|
347
388
|
|
|
348
389
|
| Video.js 8 | Video.js v10 |
|
|
349
390
|
| --- | --- |
|
|
350
|
-
| `player.play()`, `player.pause()` | the player’s `play
|
|
391
|
+
| `player.play()`, `player.pause()` | the player’s `play` and `pause` actions, or `media.play()` and `media.pause()` |
|
|
351
392
|
| `player.currentTime()` / `player.currentTime(10)` | `currentTime` in player state, the player’s `seek(10)`, or `media.currentTime` |
|
|
352
393
|
| `player.duration()` | `duration` in player state, or `media.duration` |
|
|
353
|
-
| `player.volume()
|
|
354
|
-
| `player.
|
|
394
|
+
| `player.volume()` / `player.volume(0.5)` | `volume` in player state / `media.volume = 0.5` |
|
|
395
|
+
| `player.muted()` / `player.muted(true)` | `muted` in player state / the player’s `setMuted(true)` |
|
|
396
|
+
| `player.playbackRate()` / `player.playbackRate(1.5)` | `playbackRate` in player state / the player’s `setPlaybackRate(1.5)` |
|
|
355
397
|
| `player.src({ src, type })` | set `src` on the media or replace the media element (`<video>` tag, `<hlsjs-video>`, `<dash-video>`, etc) |
|
|
356
|
-
| `player.requestFullscreen()`, `exitFullscreen()` | the player’s `requestFullscreen`, `exitFullscreen
|
|
357
|
-
| `player.textTracks()`, `addRemoteTextTrack()` | `<track>` elements
|
|
398
|
+
| `player.requestFullscreen()`, `exitFullscreen()` | the player’s `requestFullscreen`, `exitFullscreen` |
|
|
399
|
+
| `player.textTracks()`, `addRemoteTextTrack()` | `<track>` elements; read `textTrackList` from player state or `textTracks` from the media |
|
|
358
400
|
| `player.audioTracks()` | `audioTrackList` in player state, `audioTracks` in media |
|
|
359
401
|
| `player.error()` | `error` in player state |
|
|
360
402
|
| `player.dispose()` | remove the element |
|
|
361
|
-
| `player.tech()` | the media
|
|
403
|
+
| `player.tech()` | the media element’s `engine` property, where one exists |
|
|
362
404
|
| `videojs.getPlayer(id)` | hold a reference to the element |
|
|
363
405
|
|
|
364
|
-
|
|
406
|
+
Every item the table labels “the player’s” is a property of the player element’s `store`. Call these actions only after `player.store.target` is set, which means the media has attached. Fullscreen requests must run from a user interaction:
|
|
365
407
|
|
|
366
|
-
```
|
|
367
|
-
|
|
408
|
+
```html
|
|
409
|
+
<button id="toggle-fullscreen" type="button">Toggle fullscreen</button>
|
|
368
410
|
|
|
369
|
-
|
|
411
|
+
<script type="module">
|
|
412
|
+
await customElements.whenDefined('video-player');
|
|
413
|
+
const player = document.querySelector('video-player');
|
|
414
|
+
|
|
415
|
+
document.querySelector('#toggle-fullscreen').addEventListener('click', () => {
|
|
416
|
+
if (!player.store.target) return;
|
|
417
|
+
|
|
418
|
+
if (player.store.isFullscreen) {
|
|
419
|
+
player.store.exitFullscreen();
|
|
420
|
+
} else {
|
|
421
|
+
player.store.requestFullscreen();
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
</script>
|
|
370
425
|
```
|
|
371
426
|
|
|
372
|
-
|
|
427
|
+
`setVolume(value)` also unmutes when `value` is above zero. Use `media.volume = value` to preserve the current mute state. If the volume is `0`, `setMuted(false)` also sets it to `0.25`. To unmute and keep a zero volume, set `media.muted` directly.
|
|
428
|
+
|
|
429
|
+
To change sources, set `src` on the media component. If the new source needs a different playback engine, replace the media component. The UI follows the attached media.
|
|
373
430
|
|
|
374
431
|
## Languages
|
|
375
432
|
|
|
376
|
-
|
|
433
|
+
Video.js defaults to English and ships locale packs that load on demand. Select the locale and move `videojs.addLanguage` overrides into the i18n registry or provider. See [Internationalize the player](./internationalization.md).
|
|
377
434
|
|
|
378
|
-
To
|
|
435
|
+
To migrate `language: 'ja'`, wrap your player in `<media-i18n lang="ja">`. The CDN preset registers this element. With a bundler, import `@videojs/html/i18n` to register it. If your v8 player used the nearest ancestor element’s `lang` attribute, omit `lang` from `<media-i18n>` to keep that behavior.
|
|
379
436
|
|
|
380
|
-
|
|
381
|
-
|
|
437
|
+
For a CDN page, register string overrides in a module script:
|
|
438
|
+
|
|
439
|
+
```html
|
|
440
|
+
<script type="module">
|
|
441
|
+
import { registerI18n } from 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/i18n.js';
|
|
382
442
|
|
|
383
|
-
registerI18n('en', {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
});
|
|
443
|
+
registerI18n('en', {
|
|
444
|
+
buttons: { play: 'Start video', pause: 'Pause video' },
|
|
445
|
+
menu: { settings: 'Options' },
|
|
446
|
+
});
|
|
447
|
+
</script>
|
|
387
448
|
```
|
|
388
449
|
|
|
450
|
+
With a bundler, import `registerI18n` from `@videojs/html/i18n` instead. The CDN `i18n.js` module exports translation functions. The preset script registers the `<media-i18n>` element.
|
|
451
|
+
|
|
389
452
|
See [Internationalize the player](./internationalization.md) for scoped overrides, custom locales, and runtime switching.
|
|
390
453
|
|
|
391
454
|
## Live and audio-only
|
|
392
455
|
|
|
393
|
-
|
|
456
|
+
Replace `liveui` or `audioOnlyMode` with the matching live or audio [preset](./presets.md). Check its feature list when your app needs controls beyond those shown by the preset.
|
|
457
|
+
|
|
458
|
+
Load the live preset and the hls.js media component:
|
|
394
459
|
|
|
395
460
|
```html
|
|
461
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/live-video.js"></script>
|
|
462
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/media/hlsjs-video.js"></script>
|
|
463
|
+
|
|
396
464
|
<live-video-player>
|
|
397
465
|
<live-video-skin>
|
|
398
|
-
<
|
|
466
|
+
<hlsjs-video src="/live.m3u8"></hlsjs-video>
|
|
399
467
|
</live-video-skin>
|
|
400
468
|
</live-video-player>
|
|
401
469
|
```
|
|
402
470
|
|
|
403
|
-
For audio, use the audio player
|
|
471
|
+
For audio, use the audio player and skin, or the live audio pair. For muted video without controls, use the background video preset.
|
|
404
472
|
|
|
405
473
|
You get `targetLiveWindow` and `liveEdgeStart` in state, plus a live button that jumps to the live edge. The live preset does not include `streamType`; add the stream type feature to a custom player when you need it. v8’s `liveTracker` tuning has no equivalent ([#1730](https://github.com/videojs/v10/issues/1730)).
|
|
406
474
|
|
|
475
|
+
The live skins have no time slider. To preserve DVR scrubbing, add one to custom UI or installed skin source; follow [the DVR setup](./live-streams.md#dvr-let-users-scrub-back).
|
|
476
|
+
|
|
407
477
|
The live composition is deliberately narrower than the video one. It leaves out playback rate, quality, and audio-track state, so those controls don’t appear in a live skin’s settings menu. If you need an omitted feature on a live player, build your own player from a feature list rather than taking the preset’s.
|
|
408
478
|
|
|
409
|
-
That’s what [`createPlayer`](../reference/api/html-create-player.md) is for. Hand it a feature list and you get back
|
|
479
|
+
That’s what [`createPlayer`](../reference/api/html-create-player.md) is for. Hand it a feature list and you get back a `PlayerElement` class to register as your own player element, plus a `PlayerController` bound to that player’s features.
|
|
410
480
|
|
|
411
|
-
##
|
|
481
|
+
## Replace v8 utilities
|
|
412
482
|
|
|
413
|
-
v8 put a handful of utilities on the `videojs` global for anyone building a custom component or plugin: `videojs.time.formatTime`, `videojs.dom`, `videojs.fn.throttle`, and a few others.
|
|
483
|
+
v8 put a handful of utilities on the `videojs` global for anyone building a custom component or plugin: `videojs.time.formatTime`, `videojs.dom`, `videojs.fn.throttle`, and a few others. v10 has no global and no public replacements, so use a platform API, a short helper of your own, or a utility library you already depend on.
|
|
414
484
|
|
|
415
485
|
| Video.js 8 | Video.js v10 |
|
|
416
486
|
| --- | --- |
|
|
417
|
-
| `videojs.time.formatTime(seconds, guide)` |
|
|
418
|
-
|
|
|
419
|
-
| `videojs.
|
|
420
|
-
| `videojs.
|
|
421
|
-
| `videojs.obj.merge(a, b)` | `defaults(object, defaultValues)` from `@videojs/utils/object`, alongside `pick`, `omit`, `deepEqual`, and `shallowEqual` |
|
|
422
|
-
|
|
423
|
-
These are worth reaching for before writing your own when extending the player. For example, `formatTime` is the exact digital-clock formatting the packaged skins use for their own time displays, so a custom one will match. The package is split into subpaths, so you can import only the module you need. Other than `time`, it includes `array`, `events`, `i18n`, `jwt`, `predicate`, `string`, and `types` subpaths for anything else a custom component or plugin replacement needs.
|
|
487
|
+
| `videojs.time.formatTime(seconds, guide)` | The [Time](../reference/components/time.md) component for an on-screen time display. For a string of your own, a few lines of arithmetic (below), or `Intl.DurationFormat` in browsers that support it |
|
|
488
|
+
| `videojs.fn.throttle(fn, wait)` | Your own helper, or `throttle` from a utility library such as lodash |
|
|
489
|
+
| `videojs.dom.isEl(value)` and its type-specific cousins | `instanceof` checks such as `value instanceof Element`, `value instanceof HTMLMediaElement`, or `value instanceof HTMLVideoElement` |
|
|
490
|
+
| `videojs.obj.merge(a, b)` | Object spread (`{ ...a, ...b }`) for a shallow merge, or `merge({}, a, b)` from a utility library such as lodash for a deep one. Pass the empty object first, because lodash’s `merge` mutates its first argument |
|
|
424
491
|
|
|
425
|
-
|
|
492
|
+
For example, a clock-style string such as `1:05` or `1:02:03`:
|
|
426
493
|
|
|
427
|
-
```
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
</script>
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
Or with a bundler:
|
|
494
|
+
```js
|
|
495
|
+
function formatTime(seconds) {
|
|
496
|
+
if (!Number.isFinite(seconds)) return '0:00';
|
|
434
497
|
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
498
|
+
const total = Math.floor(Math.abs(seconds));
|
|
499
|
+
const h = Math.floor(total / 3600);
|
|
500
|
+
const m = Math.floor(total / 60) % 60;
|
|
501
|
+
const s = String(total % 60).padStart(2, '0');
|
|
502
|
+
const time = h > 0 ? `${h}:${String(m).padStart(2, '0')}:${s}` : `${m}:${s}`;
|
|
438
503
|
|
|
439
|
-
|
|
440
|
-
|
|
504
|
+
return seconds < 0 ? `-${time}` : time;
|
|
505
|
+
}
|
|
441
506
|
```
|
|
442
507
|
|
|
443
508
|
## Known gaps
|
|
444
509
|
|
|
445
|
-
|
|
510
|
+
Check these limitations against your required features:
|
|
446
511
|
|
|
447
|
-
- **No ads support.** v8’s IMA and ad-plugin ecosystem has no v10 equivalent.
|
|
512
|
+
- **No ads support.** v8’s IMA and ad-plugin ecosystem has no v10 equivalent. If your player depends on ads, resolve that requirement before replacing it.
|
|
448
513
|
- **No playlist support.** No `videojs-playlist` equivalent.
|
|
449
514
|
- **No plugin system**, by design. Budget for rebuilding UI plugins as components. See [Plugins](#plugins).
|
|
450
515
|
- Playback rates are a fixed set — `0.2`, `0.5`, `0.7`, `1`, `1.2`, `1.5`, `1.7`, `2` — so v8’s `playbackRates` has no equivalent yet ([#1404](https://github.com/videojs/v10/issues/1404)).
|
|
451
|
-
- No text-track settings dialog
|
|
516
|
+
- No text-track settings dialog equivalent to v8’s `textTrackSettings`. You can still style browser-rendered cues with `::cue`; see [Show captions and subtitles](./captions.md).
|
|
452
517
|
- No spatial navigation. v8’s `spatialNavigation` for TV and D-pad remotes has no equivalent.
|
|
453
|
-
-
|
|
454
|
-
- No VHS-equivalent tuning surface. Engine settings belong to the engine you chose, and the
|
|
455
|
-
- Chapters render in the time slider from a `<track kind="chapters">`, and its segments reflect `data-active`. There is no player-level active chapter value or chapter menu, so v8’s chapters menu has no equivalent ([#1873](https://github.com/videojs/v10/issues/1873)). Cue points aren’t implemented ([#1442](https://github.com/videojs/v10/issues/1442)).
|
|
456
|
-
- The controls auto-hide delay isn’t configurable, so arbitrary `inactivityTimeout` values have no equivalent ([#1728](https://github.com/videojs/v10/issues/1728)).
|
|
457
|
-
- No full-window fullscreen fallback.
|
|
458
|
-
- Multiple `<source>` elements with `size` metadata don’t become a quality menu. Use HLS or DASH for adaptive quality
|
|
459
|
-
-
|
|
518
|
+
- Player preferences such as volume, captions language, speed, and quality are not persisted automatically ([#944](https://github.com/videojs/v10/issues/944)). For application-managed persistence, follow [Remember user preferences](./user-preferences.md).
|
|
519
|
+
- No VHS-equivalent tuning surface. Engine settings belong to the engine you chose, and the SPF HLS component deliberately exposes few of them.
|
|
520
|
+
- Chapters render in the time slider from a default `<track kind="chapters">`, and its segments reflect `data-active`. There is no player-level active chapter value or chapter menu, so v8’s chapters menu has no equivalent ([#1873](https://github.com/videojs/v10/issues/1873)). Cue points aren’t implemented ([#1442](https://github.com/videojs/v10/issues/1442)).
|
|
521
|
+
- The controls auto-hide delay isn’t configurable, so arbitrary `inactivityTimeout` values have no equivalent ([#1728](https://github.com/videojs/v10/issues/1728)). For `inactivityTimeout: 0`, set `visibility="always"` on the controls component in a custom layout or installed skin source.
|
|
522
|
+
- No full-window fullscreen fallback. Test fullscreen on your supported browsers; see [Browser support](./browser-support.md).
|
|
523
|
+
- Multiple `<source>` elements with `size` metadata don’t become a quality menu. Use HLS or DASH for adaptive quality.
|
|
524
|
+
- The Default, Neutral, and Compat skins are available. Runtime theme switching is not supported.
|
|
460
525
|
- Native controls are not automatically removed when custom controls load ([#1160](https://github.com/videojs/v10/issues/1160)).
|
|
461
|
-
-
|
|
526
|
+
- Debug mode has no equivalent yet ([#1406](https://github.com/videojs/v10/issues/1406)).
|
|
462
527
|
|
|
463
528
|
## See also
|
|
464
529
|
|