@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
|
@@ -54,9 +54,11 @@ class PlayerRegion extends ContainerElement {}
|
|
|
54
54
|
<demo-video-player class="demo-video-player">
|
|
55
55
|
<media-container>
|
|
56
56
|
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" autoplay muted playsinline></video>
|
|
57
|
-
<demo-play-toggle
|
|
58
|
-
<
|
|
59
|
-
|
|
57
|
+
<demo-play-toggle>
|
|
58
|
+
<button type="button" class="media-play-button">
|
|
59
|
+
<span class="paused">Play</span>
|
|
60
|
+
<span class="playing">Pause</span>
|
|
61
|
+
</button>
|
|
60
62
|
</demo-play-toggle>
|
|
61
63
|
</media-container>
|
|
62
64
|
</demo-video-player>
|
|
@@ -73,12 +75,16 @@ class PlayerRegion extends ContainerElement {}
|
|
|
73
75
|
width: 100%;
|
|
74
76
|
}
|
|
75
77
|
|
|
76
|
-
.
|
|
78
|
+
.demo-video-player demo-play-toggle {
|
|
77
79
|
position: absolute;
|
|
78
80
|
bottom: 10px;
|
|
79
81
|
left: 10px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.media-play-button {
|
|
80
85
|
padding-block: 8px;
|
|
81
86
|
padding-inline: 20px;
|
|
87
|
+
font: inherit;
|
|
82
88
|
color: black;
|
|
83
89
|
cursor: pointer;
|
|
84
90
|
background: rgba(255, 255, 255, 0.7);
|
|
@@ -95,11 +101,11 @@ class PlayerRegion extends ContainerElement {}
|
|
|
95
101
|
display: none;
|
|
96
102
|
}
|
|
97
103
|
|
|
98
|
-
.
|
|
104
|
+
.demo-video-player demo-play-toggle[data-paused] .paused {
|
|
99
105
|
display: inline;
|
|
100
106
|
}
|
|
101
107
|
|
|
102
|
-
.
|
|
108
|
+
.demo-video-player demo-play-toggle:not([data-paused]) .playing {
|
|
103
109
|
display: inline;
|
|
104
110
|
}
|
|
105
111
|
```
|
|
@@ -107,14 +113,7 @@ class PlayerRegion extends ContainerElement {}
|
|
|
107
113
|
**index.ts**
|
|
108
114
|
|
|
109
115
|
```ts
|
|
110
|
-
import {
|
|
111
|
-
applyElementProps,
|
|
112
|
-
applyStateDataAttrs,
|
|
113
|
-
createButton,
|
|
114
|
-
createPlayer,
|
|
115
|
-
selectPlayback,
|
|
116
|
-
UIElement,
|
|
117
|
-
} from '@videojs/html';
|
|
116
|
+
import { createPlayer, selectPlayback, UIElement } from '@videojs/html';
|
|
118
117
|
import { videoFeatures } from '@videojs/html/video';
|
|
119
118
|
import '@videojs/html/ui/container';
|
|
120
119
|
|
|
@@ -133,17 +132,7 @@ class PlayToggle extends UIElement {
|
|
|
133
132
|
super.connectedCallback();
|
|
134
133
|
this.#disconnect = new AbortController();
|
|
135
134
|
|
|
136
|
-
|
|
137
|
-
onActivate: () => {
|
|
138
|
-
const state = this.#player.value;
|
|
139
|
-
if (!state) return;
|
|
140
|
-
|
|
141
|
-
state.paused ? state.play() : state.pause();
|
|
142
|
-
},
|
|
143
|
-
isDisabled: () => !this.#player.value,
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
applyElementProps(this, buttonProps, { signal: this.#disconnect.signal });
|
|
135
|
+
this.querySelector('button')?.addEventListener('click', this.#toggle, { signal: this.#disconnect.signal });
|
|
147
136
|
}
|
|
148
137
|
|
|
149
138
|
override disconnectedCallback(): void {
|
|
@@ -157,8 +146,17 @@ class PlayToggle extends UIElement {
|
|
|
157
146
|
const state = this.#player.value;
|
|
158
147
|
if (!state) return;
|
|
159
148
|
|
|
160
|
-
|
|
149
|
+
this.toggleAttribute('data-paused', state.paused);
|
|
150
|
+
this.toggleAttribute('data-ended', state.ended);
|
|
161
151
|
}
|
|
152
|
+
|
|
153
|
+
#toggle = (): void => {
|
|
154
|
+
const state = this.#player.value;
|
|
155
|
+
if (!state) return;
|
|
156
|
+
|
|
157
|
+
if (state.paused) state.play();
|
|
158
|
+
else state.pause();
|
|
159
|
+
};
|
|
162
160
|
}
|
|
163
161
|
|
|
164
162
|
customElements.define('demo-video-player', VideoPlayerElement);
|
|
@@ -10,7 +10,7 @@ import { I18nController } from "@videojs/html";
|
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
|
-
Create the controller with a reactive host and an i18n context.
|
|
13
|
+
Create the controller with a reactive host and an i18n context. `i18nContext` is the default context that `<media-i18n>` provides; its `I18nContextValue` holds the active `translator` and `locale`. Read the `Translator` from `value` and the active locale from `locale`.
|
|
14
14
|
|
|
15
15
|
```ts
|
|
16
16
|
import { I18nController, UIElement, i18nContext } from "@videojs/html";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# isText
|
|
2
|
+
|
|
3
|
+
Check whether a value is a text descriptor
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { isText } from "@videojs/html/i18n";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
`isText` returns whether a value is a text descriptor: an object with a translation `key` and its English default `text`. Use it to accept either a descriptor or a plain string, as [`translateText`](./translate-text.md) does. See [Translation phrases](./translation-phrases.md) for the built-in descriptors.
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { isText } from '@videojs/html/i18n';
|
|
15
|
+
import { playText } from '@videojs/html/i18n/text/buttons';
|
|
16
|
+
|
|
17
|
+
isText(playText); // true
|
|
18
|
+
isText('Play'); // false
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## API Reference
|
|
22
|
+
|
|
23
|
+
`isText(value): value is Text`
|
|
24
|
+
|
|
25
|
+
### Parameters
|
|
26
|
+
|
|
27
|
+
| Parameter | Type | Default | Description |
|
|
28
|
+
| --- | --- | --- | --- |
|
|
29
|
+
| `value` (required) | `unknown` | — | Value to check. |
|
|
30
|
+
|
|
31
|
+
### Return Value
|
|
32
|
+
|
|
33
|
+
`value is Text`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Video.js v10 — HTML API
|
|
2
2
|
|
|
3
|
-
> API reference for the player factory, store controllers, features, translation tools, and utilities. Bundled with `@videojs/html` v10.0.0-rc.
|
|
3
|
+
> API reference for the player factory, presets, store controllers, features, translation tools, and utilities. Bundled with `@videojs/html` v10.0.0-rc.5. Links are relative paths to files in this directory.
|
|
4
4
|
|
|
5
5
|
## Player
|
|
6
6
|
|
|
@@ -8,11 +8,24 @@ API reference for creating a player and reaching it and its container from your
|
|
|
8
8
|
|
|
9
9
|
- [createPlayer](./html-create-player.md): Factory function that creates a typed player element and controller for HTML custom elements
|
|
10
10
|
- [PlayerController](./player-controller.md): Reactive controller for accessing player store state in HTML custom elements
|
|
11
|
+
- [UIElement](./ui-element.md): Base class for custom elements that read player state through reactive controllers
|
|
12
|
+
- [Media capability guards](./media-capabilities.md): Type guards that narrow a Media object to the capabilities it supports
|
|
13
|
+
|
|
14
|
+
## Presets
|
|
15
|
+
|
|
16
|
+
API reference for the presets: each bundles a player, feature bundle, skins, and media for one use case.
|
|
17
|
+
|
|
18
|
+
- [Video preset](./preset-video.md): The general-purpose video preset — a player, feature bundle, skins, and media for on-demand video
|
|
19
|
+
- [Audio preset](./preset-audio.md): The audio-only preset — a player, feature bundle, skins, and media for on-demand audio
|
|
20
|
+
- [Live video preset](./preset-live-video.md): The live video preset — a player, feature bundle, skins, and media for live video streams
|
|
21
|
+
- [Live audio preset](./preset-live-audio.md): The live audio preset — a player, feature bundle, skins, and media for live audio streams
|
|
22
|
+
- [Background preset](./preset-background.md): The background video preset — a player, feature bundle, skin, and media for ambient video with no controls
|
|
11
23
|
|
|
12
24
|
## Store
|
|
13
25
|
|
|
14
26
|
API reference for reading and subscribing to player state: selectors and the store controllers.
|
|
15
27
|
|
|
28
|
+
- [Player store](./player-store.md): Every state field and action on the player store, grouped by the feature that adds it
|
|
16
29
|
- [createSelector](./create-selector.md): Create a type-safe selector for a store slice's state
|
|
17
30
|
- [StoreController](./store-controller.md): Reactive controller for subscribing to store state in HTML custom elements
|
|
18
31
|
- [SnapshotController](./snapshot-controller.md): Reactive controller for subscribing to a State container in HTML custom elements
|
|
@@ -54,12 +67,20 @@ API reference for translating the player: the i18n elements, controller, and the
|
|
|
54
67
|
- [hasRegisteredLocale](./has-registered-locale.md): Check whether an exact locale tag exists in the global i18n registry
|
|
55
68
|
- [onI18nRegistryChange](./on-i18n-registry-change.md): Subscribe to global i18n registry mutations
|
|
56
69
|
- [createTranslator](./create-translator.md): Build a typed translator from a resolved translation map
|
|
70
|
+
- [translateText](./translate-text.md): Translate a text descriptor, or fall back to its English default
|
|
71
|
+
- [resolveTranslation](./resolve-translation.md): Translate a key with the params its English default requires
|
|
72
|
+
- [isText](./is-text.md): Check whether a value is a text descriptor
|
|
73
|
+
- [loadLocale](./load-locale.md): Lazy-load the built-in translation pack for a locale
|
|
74
|
+
- [getLocaleKey](./get-locale-key.md): Normalize a locale tag to the key the i18n registry stores it under
|
|
75
|
+
- [findLocaleKeys](./find-locale-keys.md): List the locale tags a lookup falls back through, most specific first
|
|
57
76
|
- [I18nController](./i18n-controller.md): Reactive controller for consuming translator and locale values from an HTML i18n context
|
|
58
77
|
|
|
59
78
|
## Utils
|
|
60
79
|
|
|
61
|
-
Lower-level building blocks
|
|
80
|
+
Lower-level building blocks: adapter and MIME type resolution, and the keyboard shortcut controller for custom components.
|
|
62
81
|
|
|
82
|
+
- [resolveAdapterType](./resolve-adapter-type.md): Resolve which type of adapter plays a source URL, from its host, MIME type, or file extension
|
|
83
|
+
- [resolveMimeType](./resolve-mime-type.md): Resolve a source's MIME type from its file extension
|
|
63
84
|
- [AriaKeyShortcutsController](./aria-key-shortcuts-controller.md): Reactive controller that exposes registered hotkey shortcut metadata
|
|
64
85
|
|
|
65
86
|
## Error codes
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# loadLocale
|
|
2
|
+
|
|
3
|
+
Lazy-load the built-in translation pack for a locale
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { loadLocale } from "@videojs/html/i18n";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
`loadLocale` imports the built-in pack for a tag, or for the closest tag in its [`findLocaleKeys`](./find-locale-keys.md) chain, and resolves to its flat translations. It resolves to `undefined` when that chain reaches a locale registered with [`registerI18n`](./register-i18n.md) first, or when no built-in pack matches. Providers call it for you; use it to translate UI outside a provider without bundling every pack.
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { createTranslator, getI18nTranslations, loadLocale } from '@videojs/html/i18n';
|
|
15
|
+
|
|
16
|
+
const pack = await loadLocale('fr-CA');
|
|
17
|
+
const t = createTranslator({ ...pack, ...getI18nTranslations('fr-CA') }, 'fr-CA');
|
|
18
|
+
|
|
19
|
+
t('buttons.play'); // 'Lecture'
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## API Reference
|
|
23
|
+
|
|
24
|
+
`loadLocale(tag): Promise<Partial<FlatTranslations> | undefined>`
|
|
25
|
+
|
|
26
|
+
### Parameters
|
|
27
|
+
|
|
28
|
+
| Parameter | Type | Default | Description |
|
|
29
|
+
| --- | --- | --- | --- |
|
|
30
|
+
| `tag` (required) | `string` | — | BCP 47 tag to load, such as `fr-CA`. |
|
|
31
|
+
|
|
32
|
+
### Return Value
|
|
33
|
+
|
|
34
|
+
| Type |
|
|
35
|
+
| --- |
|
|
36
|
+
| `Promise<Partial<FlatTranslations> \| undefined>` |
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Media capability guards
|
|
2
|
+
|
|
3
|
+
Type guards that narrow a Media object to the capabilities it supports
|
|
4
|
+
|
|
5
|
+
The media a player attaches is typed as `Media`, which guarantees only a `play()` method and the `addEventListener`, `removeEventListener`, and `dispatchEvent` event methods. A native `<video>` element, an engine-backed media such as `HlsVideo`, and an embed such as YouTube each support a different set of everything else. Capability guards test whether a media supports one capability and narrow its type to that capability’s members.
|
|
6
|
+
|
|
7
|
+
## Import
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
import { isMediaSeekCapable, isMediaVolumeCapable } from "@videojs/html";
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Every guard on this page is a named export of the same package.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
The player element’s `store.target` holds the media the player attached. It’s `null` until a media element inside the player registers, so read it when you need it rather than once at startup:
|
|
18
|
+
|
|
19
|
+
**index.ts**
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import "@videojs/html/video/player";
|
|
23
|
+
import { isMediaVolumeCapable } from "@videojs/html";
|
|
24
|
+
|
|
25
|
+
const player = document.querySelector("video-player");
|
|
26
|
+
|
|
27
|
+
document.querySelector("#half-volume")?.addEventListener("click", () => {
|
|
28
|
+
const media = player?.store.target?.media;
|
|
29
|
+
if (isMediaVolumeCapable(media)) media.volume = 0.5;
|
|
30
|
+
});
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The examples below assume `player` is the queried player element.
|
|
34
|
+
|
|
35
|
+
Each `isMedia*Capable` guard accepts any value and returns `false` for `null`, `undefined`, and other non-objects, so you can pass the media straight in without a separate null check.
|
|
36
|
+
|
|
37
|
+
## Behavior
|
|
38
|
+
|
|
39
|
+
A guard checks that a few members of a capability are present, then narrows to every member of that capability’s contract. The table lists both.
|
|
40
|
+
|
|
41
|
+
Some media, such as embeds, can’t provide buffered ranges, text tracks, or remote playback, and report a shared empty placeholder in their place. `isMediaBufferCapable`, `isMediaTextTrackCapable`, and `isMediaRemotePlaybackCapable` return `false` for that placeholder.
|
|
42
|
+
|
|
43
|
+
A guard describes what the media object supports, not its current state. `isMediaErrorCapable` returns `true` while `error` is `null`, and `isMediaVolumeCapable` returns `true` on platforms that ignore volume changes. For current state and availability, such as `volumeAvailability` from the [volume feature](./feature-volume.md), read the player’s [features](../../guides/features.md) instead.
|
|
44
|
+
|
|
45
|
+
| Guard | Checks | Narrows to |
|
|
46
|
+
| --- | --- | --- |
|
|
47
|
+
| `isMediaPauseCapable` | `paused`, `ended`, `pause()` | `pause()`, `paused`, `ended` |
|
|
48
|
+
| `isMediaSeekCapable` | `currentTime`, `duration`, `seeking` | `currentTime`, `loop`, `duration`, `seeking` |
|
|
49
|
+
| `isMediaSourceCapable` | `src`, `currentSrc`, `readyState`, `load()` | `src`, `currentSrc`, `readyState`, `preload`, `crossOrigin`, `load()`, `canPlayType()` |
|
|
50
|
+
| `isMediaVolumeCapable` | `volume`, `muted` | `volume`, `muted`, `defaultMuted` |
|
|
51
|
+
| `isMediaPlaybackRateCapable` | `playbackRate` | `playbackRate`, `defaultPlaybackRate` |
|
|
52
|
+
| `isMediaBufferCapable` | `buffered`, `seekable`, neither an empty placeholder | `buffered`, `seekable` |
|
|
53
|
+
| `isMediaErrorCapable` | `error` (`null` counts) | `error` |
|
|
54
|
+
| `isMediaTextTrackCapable` | `textTracks`, not an empty placeholder | `textTracks`, `addTextTrack()` |
|
|
55
|
+
| `isMediaVideoRenditionCapable` | `videoRenditions` | `videoRenditions` |
|
|
56
|
+
| `isMediaAudioTrackCapable` | `audioTracks` | `audioTracks`, `addAudioTrack()`, `removeAudioTrack()` |
|
|
57
|
+
| `isMediaVideoDimensionsCapable` | `videoWidth`, `videoHeight` | `videoWidth`, `videoHeight` |
|
|
58
|
+
| `isMediaRemotePlaybackCapable` | `remote` is an object, not an empty placeholder | `remote`, `disableRemotePlayback` |
|
|
59
|
+
| `isMediaStreamTypeCapable` | `streamType` | `streamType` |
|
|
60
|
+
| `isMediaLiveCapable` | `liveEdgeStart`, `targetLiveWindow` | `liveEdgeStart`, `targetLiveWindow` |
|
|
61
|
+
|
|
62
|
+
`hasMetadata` isn’t a type guard: it takes a media already narrowed by `isMediaSourceCapable` and returns a boolean.
|
|
63
|
+
|
|
64
|
+
## Guards
|
|
65
|
+
|
|
66
|
+
### `isMediaPauseCapable`
|
|
67
|
+
|
|
68
|
+
Narrows to `pause()` and the read-only `paused` and `ended` booleans.
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
function togglePaused() {
|
|
72
|
+
const media = player?.store.target?.media;
|
|
73
|
+
if (!isMediaPauseCapable(media)) return;
|
|
74
|
+
|
|
75
|
+
if (media.paused) media.play();
|
|
76
|
+
else media.pause();
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### `isMediaSeekCapable`
|
|
81
|
+
|
|
82
|
+
Narrows to the writable `currentTime` and `loop`, and the read-only `duration` and `seeking`. All times are in seconds.
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
function skipForward() {
|
|
86
|
+
const media = player?.store.target?.media;
|
|
87
|
+
if (isMediaSeekCapable(media)) media.currentTime = Math.min(media.currentTime + 10, media.duration);
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### `isMediaSourceCapable`
|
|
92
|
+
|
|
93
|
+
Narrows to the writable `src`, `preload`, and `crossOrigin`; the read-only `currentSrc` and `readyState`; and the `load()` and `canPlayType(type)` methods. `canPlayType` returns `''`, `'maybe'`, or `'probably'`.
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
function playNext(url: string) {
|
|
97
|
+
const media = player?.store.target?.media;
|
|
98
|
+
if (!isMediaSourceCapable(media)) return;
|
|
99
|
+
|
|
100
|
+
media.src = url;
|
|
101
|
+
media.play();
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### `hasMetadata`
|
|
106
|
+
|
|
107
|
+
Returns `true` when the media’s `readyState` is at least `HAVE_METADATA` (`1`), meaning duration and dimensions are known. It reads only `readyState`, so narrow with `isMediaSourceCapable` first.
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
function resumeAt(seconds: number) {
|
|
111
|
+
const media = player?.store.target?.media;
|
|
112
|
+
if (!isMediaSourceCapable(media) || !hasMetadata(media)) return;
|
|
113
|
+
if (isMediaSeekCapable(media)) media.currentTime = seconds;
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### `isMediaVolumeCapable`
|
|
118
|
+
|
|
119
|
+
Narrows to the writable `volume` (`0` to `1`), `muted`, and `defaultMuted`.
|
|
120
|
+
|
|
121
|
+
```ts
|
|
122
|
+
function unmuteAtHalfVolume() {
|
|
123
|
+
const media = player?.store.target?.media;
|
|
124
|
+
if (!isMediaVolumeCapable(media)) return;
|
|
125
|
+
|
|
126
|
+
media.muted = false;
|
|
127
|
+
media.volume = 0.5;
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### `isMediaPlaybackRateCapable`
|
|
132
|
+
|
|
133
|
+
Narrows to the writable `playbackRate` and `defaultPlaybackRate`.
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
function playFaster() {
|
|
137
|
+
const media = player?.store.target?.media;
|
|
138
|
+
if (isMediaPlaybackRateCapable(media)) media.playbackRate = 1.5;
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### `isMediaBufferCapable`
|
|
143
|
+
|
|
144
|
+
Narrows to the read-only `buffered` and `seekable` time ranges. Each range list has a `length` and `start(index)` and `end(index)` methods that return seconds.
|
|
145
|
+
|
|
146
|
+
```ts
|
|
147
|
+
function getBufferedEnd() {
|
|
148
|
+
const media = player?.store.target?.media;
|
|
149
|
+
if (!isMediaBufferCapable(media) || media.buffered.length === 0) return 0;
|
|
150
|
+
|
|
151
|
+
return media.buffered.end(media.buffered.length - 1);
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### `isMediaErrorCapable`
|
|
156
|
+
|
|
157
|
+
Narrows to the read-only `error`, which is `null` or an object with a numeric `code` and a `message`.
|
|
158
|
+
|
|
159
|
+
```ts
|
|
160
|
+
function reportError() {
|
|
161
|
+
const media = player?.store.target?.media;
|
|
162
|
+
if (isMediaErrorCapable(media) && media.error) console.error(media.error.code, media.error.message);
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### `isMediaTextTrackCapable`
|
|
167
|
+
|
|
168
|
+
Narrows to the read-only `textTracks` list and `addTextTrack(kind, label?, language?)`. The list is iterable and indexable, and each track has `kind`, `label`, `language`, `id`, a writable `mode` (`'showing'`, `'hidden'`, or `'disabled'`), and `cues`.
|
|
169
|
+
|
|
170
|
+
```ts
|
|
171
|
+
function showCaptions(language: string) {
|
|
172
|
+
const media = player?.store.target?.media;
|
|
173
|
+
if (!isMediaTextTrackCapable(media)) return;
|
|
174
|
+
|
|
175
|
+
for (const track of media.textTracks) {
|
|
176
|
+
if (track.kind === "captions" || track.kind === "subtitles") {
|
|
177
|
+
track.mode = track.language === language ? "showing" : "disabled";
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### `isMediaVideoRenditionCapable`
|
|
184
|
+
|
|
185
|
+
Narrows to the read-only `videoRenditions` list. The list is iterable and indexable, has `getRenditionById(id)`, and has a writable `selectedIndex`; `-1` means automatic selection. Each rendition has `id`, `width`, `height`, `bitrate`, `frameRate`, `codec`, and `selected`.
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
function switchToAutomaticQuality() {
|
|
189
|
+
const media = player?.store.target?.media;
|
|
190
|
+
if (isMediaVideoRenditionCapable(media)) media.videoRenditions.selectedIndex = -1;
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### `isMediaAudioTrackCapable`
|
|
195
|
+
|
|
196
|
+
Narrows to the read-only `audioTracks` list, `addAudioTrack(kind, label?, language?)`, and `removeAudioTrack(track)`. The list is iterable and indexable, and each track has `id`, `kind`, `label`, `language`, and a writable `enabled`.
|
|
197
|
+
|
|
198
|
+
```ts
|
|
199
|
+
function selectAudioLanguage(language: string) {
|
|
200
|
+
const media = player?.store.target?.media;
|
|
201
|
+
if (!isMediaAudioTrackCapable(media)) return;
|
|
202
|
+
|
|
203
|
+
for (const track of media.audioTracks) track.enabled = track.language === language;
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### `isMediaVideoDimensionsCapable`
|
|
208
|
+
|
|
209
|
+
Narrows to the read-only `videoWidth` and `videoHeight`, in pixels. Both are `0` until metadata loads.
|
|
210
|
+
|
|
211
|
+
```ts
|
|
212
|
+
function getAspectRatio() {
|
|
213
|
+
const media = player?.store.target?.media;
|
|
214
|
+
if (!isMediaVideoDimensionsCapable(media) || !media.videoHeight) return null;
|
|
215
|
+
|
|
216
|
+
return media.videoWidth / media.videoHeight;
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### `isMediaRemotePlaybackCapable`
|
|
221
|
+
|
|
222
|
+
Narrows to the read-only `remote` object and the writable `disableRemotePlayback`. `remote` has a `state` (`'connecting'`, `'connected'`, or `'disconnected'`), `prompt()`, `watchAvailability(callback)`, and `cancelWatchAvailability(id?)`, matching the browser’s [Remote Playback API](https://developer.mozilla.org/en-US/docs/Web/API/RemotePlayback).
|
|
223
|
+
|
|
224
|
+
```ts
|
|
225
|
+
function castToDevice() {
|
|
226
|
+
const media = player?.store.target?.media;
|
|
227
|
+
if (isMediaRemotePlaybackCapable(media)) media.remote.prompt();
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Call `prompt()` from a user gesture, such as a click handler; browsers reject it otherwise.
|
|
232
|
+
|
|
233
|
+
### `isMediaStreamTypeCapable`
|
|
234
|
+
|
|
235
|
+
Narrows to `streamType`: `'on-demand'`, `'live'`, or `'unknown'` before the type is determined.
|
|
236
|
+
|
|
237
|
+
```ts
|
|
238
|
+
function isLiveStream() {
|
|
239
|
+
const media = player?.store.target?.media;
|
|
240
|
+
return isMediaStreamTypeCapable(media) && media.streamType === "live";
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### `isMediaLiveCapable`
|
|
245
|
+
|
|
246
|
+
Narrows to the read-only `liveEdgeStart` and `targetLiveWindow`. Playback is at the live edge when `currentTime` is at or past `liveEdgeStart`, which is `NaN` when the stream isn’t live or the value is unknown. `targetLiveWindow` is `0` for a sliding live window, `Infinity` for a live event with playback history, and `NaN` for on-demand or unknown; it isn’t a duration.
|
|
247
|
+
|
|
248
|
+
```ts
|
|
249
|
+
function isAtLiveEdge() {
|
|
250
|
+
const media = player?.store.target?.media;
|
|
251
|
+
if (!isMediaLiveCapable(media) || !isMediaSeekCapable(media)) return false;
|
|
252
|
+
|
|
253
|
+
return media.currentTime >= media.liveEdgeStart;
|
|
254
|
+
}
|
|
255
|
+
```
|
|
@@ -21,6 +21,39 @@ class PlayButtonElement extends UIElement {
|
|
|
21
21
|
}
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
+
The host must be a reactive controller host, such as a subclass of [`UIElement`](./ui-element.md), so the controller can request updates.
|
|
25
|
+
|
|
26
|
+
## Player context
|
|
27
|
+
|
|
28
|
+
`playerContext` is the context every player element provides to its descendants, whether the element comes from a preset or from [`createPlayer`](./html-create-player.md). `PlayerController` requests it from its host when the host connects, and the nearest ancestor player answers with its store. An element outside a player receives nothing, so `value` stays `undefined`.
|
|
29
|
+
|
|
30
|
+
Pass `playerContext` to the `PlayerController` exported from `@videojs/html`:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { PlayerController, playerContext, selectPlayback, UIElement } from "@videojs/html";
|
|
34
|
+
|
|
35
|
+
class PlayButtonElement extends UIElement {
|
|
36
|
+
readonly #playback = new PlayerController(this, playerContext, selectPlayback);
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
With a selector, the selector types the value. Without one, `value` is typed as the base player store, with no feature state or actions, because `playerContext` does not know the player’s features. For typed access, use the `PlayerController` that `createPlayer` returns, which is already bound to its player, or pass the context `createPlayer` returns, which is the same context as `playerContext` typed for its feature set:
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
import { createPlayer, PlayerController, UIElement } from "@videojs/html";
|
|
44
|
+
import { videoFeatures } from "@videojs/html/video";
|
|
45
|
+
|
|
46
|
+
const { playerContext } = createPlayer({ features: videoFeatures });
|
|
47
|
+
|
|
48
|
+
class VolumeResetElement extends UIElement {
|
|
49
|
+
readonly #store = new PlayerController(this, playerContext);
|
|
50
|
+
|
|
51
|
+
reset() {
|
|
52
|
+
this.#store.value?.setVolume(1);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
24
57
|
## Examples
|
|
25
58
|
|
|
26
59
|
### Basic Usage
|
|
@@ -90,15 +123,7 @@ class PlayButtonElement extends UIElement {
|
|
|
90
123
|
**index.ts**
|
|
91
124
|
|
|
92
125
|
```ts
|
|
93
|
-
import {
|
|
94
|
-
applyElementProps,
|
|
95
|
-
createButton,
|
|
96
|
-
createPlayer,
|
|
97
|
-
selectPlayback,
|
|
98
|
-
selectTime,
|
|
99
|
-
selectVolume,
|
|
100
|
-
UIElement,
|
|
101
|
-
} from '@videojs/html';
|
|
126
|
+
import { createPlayer, selectPlayback, selectTime, selectVolume, UIElement } from '@videojs/html';
|
|
102
127
|
import { videoFeatures } from '@videojs/html/video';
|
|
103
128
|
import '@videojs/html/ui/container';
|
|
104
129
|
|
|
@@ -118,19 +143,13 @@ class PlayerActions extends UIElement {
|
|
|
118
143
|
this.#disconnect = new AbortController();
|
|
119
144
|
const signal = this.#disconnect.signal;
|
|
120
145
|
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
const volumeBtn = this.querySelector<HTMLButtonElement>('.volume')!;
|
|
124
|
-
|
|
125
|
-
const bind = (el: HTMLElement, action: () => void) => {
|
|
126
|
-
const props = createButton({ onActivate: action, isDisabled: () => !this.#player.value });
|
|
127
|
-
|
|
128
|
-
applyElementProps(el, props, { signal });
|
|
146
|
+
const bind = (selector: string, action: () => void) => {
|
|
147
|
+
this.querySelector(selector)?.addEventListener('click', action, { signal });
|
|
129
148
|
};
|
|
130
149
|
|
|
131
|
-
bind(
|
|
132
|
-
bind(
|
|
133
|
-
bind(
|
|
150
|
+
bind('.play', () => this.#player.value?.play());
|
|
151
|
+
bind('.pause', () => this.#player.value?.pause());
|
|
152
|
+
bind('.volume', () => this.#player.value?.setVolume(0.5));
|
|
134
153
|
}
|
|
135
154
|
|
|
136
155
|
override disconnectedCallback(): void {
|