@videojs/html 10.0.0 → 10.1.0
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/README.md +2 -2
- package/dist/default/define/audio/compat-skin.css +42 -0
- package/dist/default/define/audio/compat-skin2.js +1 -1
- package/dist/default/define/audio/scaffold-skin.css +1771 -0
- package/dist/default/define/audio/scaffold-skin.js +6 -0
- package/dist/default/define/audio/scaffold-skin2.js +4 -0
- package/dist/default/define/live-audio/compat-skin.css +42 -0
- package/dist/default/define/live-audio/compat-skin2.js +1 -1
- package/dist/default/define/live-audio/scaffold-skin.css +1591 -0
- package/dist/default/define/live-audio/scaffold-skin.js +6 -0
- package/dist/default/define/live-audio/scaffold-skin2.js +4 -0
- package/dist/default/define/live-video/compat-skin.css +67 -23
- package/dist/default/define/live-video/compat-skin2.js +1 -1
- package/dist/default/define/live-video/neutral-skin.css +20 -9
- package/dist/default/define/live-video/neutral-skin2.js +1 -1
- package/dist/default/define/live-video/scaffold-skin.css +1976 -0
- package/dist/default/define/live-video/scaffold-skin.js +6 -0
- package/dist/default/define/live-video/scaffold-skin2.js +4 -0
- package/dist/default/define/live-video/skin.css +18 -7
- package/dist/default/define/live-video/skin2.js +1 -1
- package/dist/default/define/media/dash-video.js +1 -1
- package/dist/default/define/media/hls-video.js +1 -1
- package/dist/default/define/media/hlsjs-video.js +1 -1
- package/dist/default/define/media/native-hls-video.js +1 -1
- package/dist/default/define/media/playerjs-video.js +11 -0
- package/dist/default/define/video/compat-skin.css +67 -23
- package/dist/default/define/video/compat-skin2.js +1 -1
- package/dist/default/define/video/neutral-skin.css +26 -9
- package/dist/default/define/video/neutral-skin2.js +1 -1
- package/dist/default/define/video/scaffold-skin.css +2216 -0
- package/dist/default/define/video/scaffold-skin.js +6 -0
- package/dist/default/define/video/scaffold-skin2.js +4 -0
- package/dist/default/define/video/skin.css +24 -7
- package/dist/default/define/video/skin2.js +1 -1
- package/dist/default/extensions/mux-data/extension.js +1 -1
- package/dist/default/icons/dist/element/compat/icons.js +1 -1
- package/dist/default/icons/dist/element/index.js +1 -0
- package/dist/default/icons/dist/element/scaffold/icons.js +30 -0
- package/dist/default/icons/dist/element/scaffold/index.js +8 -0
- package/dist/default/icons/dist/html/compat/play.js +1 -1
- package/dist/default/icons/dist/html/scaffold/airplay-enter.js +4 -0
- package/dist/default/icons/dist/html/scaffold/airplay-exit.js +4 -0
- package/dist/default/icons/dist/html/scaffold/captions-off.js +4 -0
- package/dist/default/icons/dist/html/scaffold/captions-on.js +4 -0
- package/dist/default/icons/dist/html/scaffold/cast-enter.js +4 -0
- package/dist/default/icons/dist/html/scaffold/cast-exit.js +4 -0
- package/dist/default/icons/dist/html/scaffold/check.js +4 -0
- package/dist/default/icons/dist/html/scaffold/chevron.js +4 -0
- package/dist/default/icons/dist/html/scaffold/fullscreen-enter.js +4 -0
- package/dist/default/icons/dist/html/scaffold/fullscreen-exit.js +4 -0
- package/dist/default/icons/dist/html/scaffold/gear.js +4 -0
- package/dist/default/icons/dist/html/scaffold/pause.js +4 -0
- package/dist/default/icons/dist/html/scaffold/pip-enter.js +4 -0
- package/dist/default/icons/dist/html/scaffold/pip-exit.js +4 -0
- package/dist/default/icons/dist/html/scaffold/play.js +4 -0
- package/dist/default/icons/dist/html/scaffold/quality.js +4 -0
- package/dist/default/icons/dist/html/scaffold/restart.js +4 -0
- package/dist/default/icons/dist/html/scaffold/seek.js +4 -0
- package/dist/default/icons/dist/html/scaffold/speech.js +4 -0
- package/dist/default/icons/dist/html/scaffold/speed.js +4 -0
- package/dist/default/icons/dist/html/scaffold/spinner.js +4 -0
- package/dist/default/icons/dist/html/scaffold/switches.js +4 -0
- package/dist/default/icons/dist/html/scaffold/volume-high.js +4 -0
- package/dist/default/icons/dist/html/scaffold/volume-low.js +4 -0
- package/dist/default/icons/dist/html/scaffold/volume-off.js +4 -0
- package/dist/default/icons/element/scaffold/index.js +1 -0
- package/dist/default/icons/scaffold/index.js +26 -0
- package/dist/default/internal/skins/compat-audio/register.js +1 -0
- package/dist/default/internal/skins/compat-audio/skin.css +42 -0
- package/dist/default/internal/skins/compat-audio/template.js +18 -16
- package/dist/default/internal/skins/compat-live-audio/register.js +1 -0
- package/dist/default/internal/skins/compat-live-audio/skin.css +42 -0
- package/dist/default/internal/skins/compat-live-audio/template.js +11 -9
- package/dist/default/internal/skins/compat-live-video/skin.css +67 -23
- package/dist/default/internal/skins/compat-live-video/template.js +20 -18
- package/dist/default/internal/skins/compat-video/skin.css +67 -23
- package/dist/default/internal/skins/compat-video/template.js +34 -32
- package/dist/default/internal/skins/default-audio/template.js +12 -12
- package/dist/default/internal/skins/default-live-audio/template.js +5 -5
- package/dist/default/internal/skins/default-live-video/skin.css +18 -7
- package/dist/default/internal/skins/default-live-video/template.js +16 -16
- package/dist/default/internal/skins/default-video/skin.css +24 -7
- package/dist/default/internal/skins/default-video/template.js +26 -26
- package/dist/default/internal/skins/neutral-audio/template.js +12 -12
- package/dist/default/internal/skins/neutral-live-audio/template.js +5 -5
- package/dist/default/internal/skins/neutral-live-video/skin.css +20 -9
- package/dist/default/internal/skins/neutral-live-video/template.js +16 -16
- package/dist/default/internal/skins/neutral-video/skin.css +26 -9
- package/dist/default/internal/skins/neutral-video/template.js +26 -26
- package/dist/default/internal/skins/scaffold-audio/register.js +73 -0
- package/dist/default/internal/skins/scaffold-audio/skin.css +1739 -0
- package/dist/default/internal/skins/scaffold-audio/template.js +221 -0
- package/dist/default/internal/skins/scaffold-live-audio/register.js +53 -0
- package/dist/default/internal/skins/scaffold-live-audio/skin.css +1559 -0
- package/dist/default/internal/skins/scaffold-live-audio/template.js +118 -0
- package/dist/default/internal/skins/scaffold-live-video/register.js +86 -0
- package/dist/default/internal/skins/scaffold-live-video/skin.css +1944 -0
- package/dist/default/internal/skins/scaffold-live-video/template.js +241 -0
- package/dist/default/internal/skins/scaffold-video/register.js +115 -0
- package/dist/default/internal/skins/scaffold-video/skin.css +2184 -0
- package/dist/default/internal/skins/scaffold-video/template.js +461 -0
- package/dist/default/media/playerjs-video/adapter.js +25 -0
- package/dist/default/presets/audio/index.js +2 -1
- package/dist/default/presets/audio/scaffold-skin.js +19 -0
- package/dist/default/presets/background/skin.js +0 -2
- package/dist/default/presets/live-audio/index.js +2 -1
- package/dist/default/presets/live-audio/scaffold-skin.js +19 -0
- package/dist/default/presets/live-video/index.js +2 -1
- package/dist/default/presets/live-video/scaffold-skin.js +19 -0
- package/dist/default/presets/skin.js +0 -11
- package/dist/default/presets/video/index.js +2 -1
- package/dist/default/presets/video/scaffold-skin.js +19 -0
- package/dist/default/ui/thumbnail/element.js +2 -2
- package/dist/default/ui/time-slider/element.js +31 -7
- package/dist/default/version.js +1 -1
- package/dist/dev/define/audio/compat-skin.css +42 -0
- package/dist/dev/define/audio/compat-skin2.js +1 -1
- package/dist/dev/define/audio/compat-skin2.js.map +1 -1
- package/dist/dev/define/audio/neutral-skin2.js.map +1 -1
- package/dist/dev/define/audio/scaffold-skin.css +1771 -0
- package/dist/dev/define/audio/scaffold-skin.d.ts +1 -0
- package/dist/dev/define/audio/scaffold-skin.js +8 -0
- package/dist/dev/define/audio/scaffold-skin.js.map +1 -0
- package/dist/dev/define/audio/scaffold-skin2.js +6 -0
- package/dist/dev/define/audio/scaffold-skin2.js.map +1 -0
- package/dist/dev/define/audio/skin2.js.map +1 -1
- package/dist/dev/define/global.js.map +1 -1
- package/dist/dev/define/live-audio/compat-skin.css +42 -0
- package/dist/dev/define/live-audio/compat-skin2.js +1 -1
- package/dist/dev/define/live-audio/compat-skin2.js.map +1 -1
- package/dist/dev/define/live-audio/neutral-skin2.js.map +1 -1
- package/dist/dev/define/live-audio/scaffold-skin.css +1591 -0
- package/dist/dev/define/live-audio/scaffold-skin.d.ts +1 -0
- package/dist/dev/define/live-audio/scaffold-skin.js +8 -0
- package/dist/dev/define/live-audio/scaffold-skin.js.map +1 -0
- package/dist/dev/define/live-audio/scaffold-skin2.js +6 -0
- package/dist/dev/define/live-audio/scaffold-skin2.js.map +1 -0
- package/dist/dev/define/live-audio/skin2.js.map +1 -1
- package/dist/dev/define/live-video/compat-skin.css +67 -23
- package/dist/dev/define/live-video/compat-skin2.js +1 -1
- package/dist/dev/define/live-video/compat-skin2.js.map +1 -1
- package/dist/dev/define/live-video/neutral-skin.css +20 -9
- package/dist/dev/define/live-video/neutral-skin2.js +1 -1
- package/dist/dev/define/live-video/neutral-skin2.js.map +1 -1
- package/dist/dev/define/live-video/scaffold-skin.css +1976 -0
- package/dist/dev/define/live-video/scaffold-skin.d.ts +1 -0
- package/dist/dev/define/live-video/scaffold-skin.js +8 -0
- package/dist/dev/define/live-video/scaffold-skin.js.map +1 -0
- package/dist/dev/define/live-video/scaffold-skin2.js +6 -0
- package/dist/dev/define/live-video/scaffold-skin2.js.map +1 -0
- package/dist/dev/define/live-video/skin.css +18 -7
- 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/dash-video.d.ts +1 -1
- package/dist/dev/define/media/dash-video.js +1 -1
- package/dist/dev/define/media/dash-video.js.map +1 -1
- package/dist/dev/define/media/hls-video.d.ts +1 -1
- package/dist/dev/define/media/hls-video.js +1 -1
- package/dist/dev/define/media/hls-video.js.map +1 -1
- package/dist/dev/define/media/hlsjs-video.d.ts +1 -1
- package/dist/dev/define/media/hlsjs-video.js +1 -1
- package/dist/dev/define/media/hlsjs-video.js.map +1 -1
- package/dist/dev/define/media/native-hls-video.d.ts +1 -1
- package/dist/dev/define/media/native-hls-video.js +1 -1
- package/dist/dev/define/media/native-hls-video.js.map +1 -1
- package/dist/dev/define/media/playerjs-video.d.ts +15 -0
- package/dist/dev/define/media/playerjs-video.js +13 -0
- package/dist/dev/define/media/playerjs-video.js.map +1 -0
- package/dist/dev/define/video/compat-skin.css +67 -23
- package/dist/dev/define/video/compat-skin2.js +1 -1
- package/dist/dev/define/video/compat-skin2.js.map +1 -1
- package/dist/dev/define/video/neutral-skin.css +26 -9
- package/dist/dev/define/video/neutral-skin2.js +1 -1
- package/dist/dev/define/video/neutral-skin2.js.map +1 -1
- package/dist/dev/define/video/scaffold-skin.css +2216 -0
- package/dist/dev/define/video/scaffold-skin.d.ts +1 -0
- package/dist/dev/define/video/scaffold-skin.js +8 -0
- package/dist/dev/define/video/scaffold-skin.js.map +1 -0
- package/dist/dev/define/video/scaffold-skin2.js +6 -0
- package/dist/dev/define/video/scaffold-skin2.js.map +1 -0
- package/dist/dev/define/video/skin.css +24 -7
- package/dist/dev/define/video/skin2.js +1 -1
- package/dist/dev/define/video/skin2.js.map +1 -1
- package/dist/dev/extensions/mux-data/extension.d.ts +1 -1
- package/dist/dev/extensions/mux-data/extension.js +1 -1
- package/dist/dev/extensions/mux-data/extension.js.map +1 -1
- package/dist/dev/icons/dist/element/compat/icons.js +1 -1
- package/dist/dev/icons/dist/element/compat/icons.js.map +1 -1
- package/dist/dev/icons/dist/element/index.js +1 -0
- package/dist/dev/icons/dist/element/index.js.map +1 -1
- package/dist/dev/icons/dist/element/scaffold/icons.js +32 -0
- package/dist/dev/icons/dist/element/scaffold/icons.js.map +1 -0
- package/dist/dev/icons/dist/element/scaffold/index.d.ts +1 -0
- package/dist/dev/icons/dist/element/scaffold/index.js +10 -0
- package/dist/dev/icons/dist/element/scaffold/index.js.map +1 -0
- package/dist/dev/icons/dist/html/compat/play.js +1 -1
- package/dist/dev/icons/dist/html/compat/play.js.map +1 -1
- package/dist/dev/icons/dist/html/scaffold/airplay-enter.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/airplay-enter.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/airplay-exit.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/airplay-exit.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/captions-off.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/captions-off.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/captions-on.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/captions-on.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/cast-enter.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/cast-enter.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/cast-exit.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/cast-exit.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/check.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/check.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/chevron.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/chevron.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/fullscreen-enter.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/fullscreen-enter.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/fullscreen-exit.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/fullscreen-exit.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/gear.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/gear.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/index.d.ts +28 -0
- package/dist/dev/icons/dist/html/scaffold/pause.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/pause.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/pip-enter.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/pip-enter.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/pip-exit.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/pip-exit.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/play.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/play.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/quality.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/quality.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/restart.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/restart.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/seek.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/seek.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/speech.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/speech.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/speed.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/speed.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/spinner.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/spinner.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/switches.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/switches.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/volume-high.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/volume-high.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/volume-low.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/volume-low.js.map +1 -0
- package/dist/dev/icons/dist/html/scaffold/volume-off.js +6 -0
- package/dist/dev/icons/dist/html/scaffold/volume-off.js.map +1 -0
- package/dist/dev/icons/element/scaffold/index.d.ts +1 -0
- package/dist/dev/icons/element/scaffold/index.js +1 -0
- package/dist/dev/icons/scaffold/index.d.ts +2 -0
- package/dist/dev/icons/scaffold/index.js +26 -0
- package/dist/dev/index.d.ts +3 -3
- package/dist/dev/internal/skins/compat-audio/register.d.ts +1 -0
- package/dist/dev/internal/skins/compat-audio/register.js +1 -0
- package/dist/dev/internal/skins/compat-audio/register.js.map +1 -1
- package/dist/dev/internal/skins/compat-audio/skin.css +42 -0
- package/dist/dev/internal/skins/compat-audio/template.js +18 -16
- package/dist/dev/internal/skins/compat-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/compat-live-audio/register.d.ts +1 -0
- package/dist/dev/internal/skins/compat-live-audio/register.js +1 -0
- package/dist/dev/internal/skins/compat-live-audio/register.js.map +1 -1
- package/dist/dev/internal/skins/compat-live-audio/skin.css +42 -0
- package/dist/dev/internal/skins/compat-live-audio/template.js +11 -9
- package/dist/dev/internal/skins/compat-live-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/compat-live-video/register.d.ts +1 -1
- package/dist/dev/internal/skins/compat-live-video/skin.css +67 -23
- package/dist/dev/internal/skins/compat-live-video/template.js +20 -18
- package/dist/dev/internal/skins/compat-live-video/template.js.map +1 -1
- package/dist/dev/internal/skins/compat-video/register.d.ts +1 -1
- package/dist/dev/internal/skins/compat-video/skin.css +67 -23
- package/dist/dev/internal/skins/compat-video/template.js +34 -32
- package/dist/dev/internal/skins/compat-video/template.js.map +1 -1
- package/dist/dev/internal/skins/default-audio/register.d.ts +2 -2
- package/dist/dev/internal/skins/default-audio/template.js +12 -12
- package/dist/dev/internal/skins/default-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/default-live-audio/register.d.ts +1 -1
- package/dist/dev/internal/skins/default-live-audio/template.js +5 -5
- package/dist/dev/internal/skins/default-live-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/default-live-video/register.d.ts +1 -1
- package/dist/dev/internal/skins/default-live-video/skin.css +18 -7
- package/dist/dev/internal/skins/default-live-video/template.js +16 -16
- package/dist/dev/internal/skins/default-live-video/template.js.map +1 -1
- package/dist/dev/internal/skins/default-video/register.d.ts +1 -1
- package/dist/dev/internal/skins/default-video/skin.css +24 -7
- package/dist/dev/internal/skins/default-video/template.js +26 -26
- package/dist/dev/internal/skins/default-video/template.js.map +1 -1
- package/dist/dev/internal/skins/neutral-audio/register.d.ts +2 -2
- package/dist/dev/internal/skins/neutral-audio/template.js +12 -12
- package/dist/dev/internal/skins/neutral-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/neutral-live-audio/register.d.ts +1 -1
- package/dist/dev/internal/skins/neutral-live-audio/template.js +5 -5
- package/dist/dev/internal/skins/neutral-live-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/neutral-live-video/register.d.ts +1 -1
- package/dist/dev/internal/skins/neutral-live-video/skin.css +20 -9
- package/dist/dev/internal/skins/neutral-live-video/template.js +16 -16
- package/dist/dev/internal/skins/neutral-live-video/template.js.map +1 -1
- package/dist/dev/internal/skins/neutral-video/register.d.ts +1 -1
- package/dist/dev/internal/skins/neutral-video/skin.css +26 -9
- package/dist/dev/internal/skins/neutral-video/template.js +26 -26
- package/dist/dev/internal/skins/neutral-video/template.js.map +1 -1
- package/dist/dev/internal/skins/scaffold-audio/register.d.ts +44 -0
- package/dist/dev/internal/skins/scaffold-audio/register.js +75 -0
- package/dist/dev/internal/skins/scaffold-audio/register.js.map +1 -0
- package/dist/dev/internal/skins/scaffold-audio/skin.css +1739 -0
- package/dist/dev/internal/skins/scaffold-audio/template.js +223 -0
- package/dist/dev/internal/skins/scaffold-audio/template.js.map +1 -0
- package/dist/dev/internal/skins/scaffold-live-audio/register.d.ts +28 -0
- package/dist/dev/internal/skins/scaffold-live-audio/register.js +55 -0
- package/dist/dev/internal/skins/scaffold-live-audio/register.js.map +1 -0
- package/dist/dev/internal/skins/scaffold-live-audio/skin.css +1559 -0
- package/dist/dev/internal/skins/scaffold-live-audio/template.js +120 -0
- package/dist/dev/internal/skins/scaffold-live-audio/template.js.map +1 -0
- package/dist/dev/internal/skins/scaffold-live-video/register.d.ts +45 -0
- package/dist/dev/internal/skins/scaffold-live-video/register.js +88 -0
- package/dist/dev/internal/skins/scaffold-live-video/register.js.map +1 -0
- package/dist/dev/internal/skins/scaffold-live-video/skin.css +1944 -0
- package/dist/dev/internal/skins/scaffold-live-video/template.js +243 -0
- package/dist/dev/internal/skins/scaffold-live-video/template.js.map +1 -0
- package/dist/dev/internal/skins/scaffold-video/register.d.ts +62 -0
- package/dist/dev/internal/skins/scaffold-video/register.js +117 -0
- package/dist/dev/internal/skins/scaffold-video/register.js.map +1 -0
- package/dist/dev/internal/skins/scaffold-video/skin.css +2184 -0
- package/dist/dev/internal/skins/scaffold-video/template.js +463 -0
- package/dist/dev/internal/skins/scaffold-video/template.js.map +1 -0
- package/dist/dev/media/playerjs-video/adapter.d.ts +11 -0
- package/dist/dev/media/playerjs-video/adapter.js +61 -0
- package/dist/dev/media/playerjs-video/adapter.js.map +1 -0
- package/dist/dev/media/playerjs-video/index.d.ts +2 -0
- package/dist/dev/presets/audio/index.d.ts +2 -1
- package/dist/dev/presets/audio/index.js +2 -1
- package/dist/dev/presets/audio/scaffold-skin.d.ts +15 -0
- package/dist/dev/presets/audio/scaffold-skin.js +21 -0
- package/dist/dev/presets/audio/scaffold-skin.js.map +1 -0
- package/dist/dev/presets/background/skin.js +0 -2
- package/dist/dev/presets/background/skin.js.map +1 -1
- package/dist/dev/presets/live-audio/index.d.ts +2 -1
- package/dist/dev/presets/live-audio/index.js +2 -1
- package/dist/dev/presets/live-audio/scaffold-skin.d.ts +15 -0
- package/dist/dev/presets/live-audio/scaffold-skin.js +21 -0
- package/dist/dev/presets/live-audio/scaffold-skin.js.map +1 -0
- package/dist/dev/presets/live-video/index.d.ts +2 -1
- package/dist/dev/presets/live-video/index.js +2 -1
- package/dist/dev/presets/live-video/scaffold-skin.d.ts +15 -0
- package/dist/dev/presets/live-video/scaffold-skin.js +21 -0
- package/dist/dev/presets/live-video/scaffold-skin.js.map +1 -0
- package/dist/dev/presets/skin.js +0 -11
- package/dist/dev/presets/skin.js.map +1 -1
- package/dist/dev/presets/video/index.d.ts +2 -1
- package/dist/dev/presets/video/index.js +2 -1
- package/dist/dev/presets/video/scaffold-skin.d.ts +15 -0
- package/dist/dev/presets/video/scaffold-skin.js +21 -0
- package/dist/dev/presets/video/scaffold-skin.js.map +1 -0
- package/dist/dev/ui/thumbnail/element.js +2 -2
- package/dist/dev/ui/thumbnail/element.js.map +1 -1
- package/dist/dev/ui/time-slider/element.js +31 -7
- package/dist/dev/ui/time-slider/element.js.map +1 -1
- package/dist/dev/version.js +1 -1
- package/docs/README.md +1 -1
- package/docs/guides/architecture.md +3 -3
- package/docs/guides/autoplay.md +3 -3
- package/docs/guides/build-with-ai.md +1 -1
- package/docs/guides/captions.md +5 -5
- package/docs/guides/casting.md +5 -5
- package/docs/guides/cdn.md +11 -11
- package/docs/guides/customize-skins.md +2 -2
- package/docs/guides/features.md +1 -1
- package/docs/guides/fullscreen.md +1 -1
- package/docs/guides/installation-cdn.md +4 -4
- package/docs/guides/installation-shadcn.md +6 -6
- 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 +5 -5
- package/docs/guides/live-streams.md +3 -3
- package/docs/guides/llms.txt +5 -4
- package/docs/guides/media-sources.md +3 -2
- package/docs/guides/migrate-from-media-chrome.md +4 -4
- package/docs/guides/migrate-from-mux-player.md +7 -7
- package/docs/guides/migrate-from-plyr.md +8 -8
- package/docs/guides/migrate-from-video-js-8.md +18 -10
- package/docs/guides/migrate-from-vidstack.md +9 -9
- package/docs/guides/migrate.md +18 -0
- package/docs/guides/mux-data.md +1 -1
- package/docs/guides/playback-errors.md +4 -4
- package/docs/guides/presets.md +13 -13
- package/docs/guides/quality.md +3 -3
- package/docs/guides/self-hosting.md +8 -8
- package/docs/guides/skins.md +6 -6
- package/docs/guides/thumbnails.md +2 -2
- package/docs/guides/user-preferences.md +2 -2
- package/docs/guides/v10-roadmap.md +2 -2
- package/docs/guides/why-videojs.md +3 -3
- package/docs/llms.txt +10 -4
- package/docs/reference/api/error-codes.md +1 -1
- package/docs/reference/api/feature-fullscreen.md +2 -2
- package/docs/reference/api/feature-metadata.md +2 -2
- package/docs/reference/api/feature-source.md +1 -1
- package/docs/reference/api/feature-text-tracks.md +2 -2
- package/docs/reference/api/llms.txt +1 -1
- package/docs/reference/api/media-capabilities.md +1 -1
- package/docs/reference/api/player-store.md +3 -3
- package/docs/reference/api/preset-audio.md +2 -2
- package/docs/reference/api/preset-background.md +3 -3
- package/docs/reference/api/preset-live-audio.md +3 -3
- package/docs/reference/api/preset-live-video.md +3 -3
- package/docs/reference/api/preset-video.md +2 -2
- package/docs/reference/api/resolve-adapter-type.md +2 -2
- package/docs/reference/api/vjs8-legacy-init.md +2 -2
- package/docs/reference/api/vjs8-legacy-options.md +1 -1
- package/docs/reference/components/audio-compat-skin.md +33 -3
- package/docs/reference/components/audio-neutral-skin.md +34 -4
- package/docs/reference/components/audio-scaffold-skin.md +39 -0
- package/docs/reference/components/audio-skin.md +34 -4
- package/docs/reference/components/audio.md +1 -1
- package/docs/reference/components/background-video-skin.md +36 -4
- package/docs/reference/components/background-video.md +1 -1
- package/docs/reference/components/cast-button.md +1 -1
- package/docs/reference/components/cloudflare-video.md +1 -1
- package/docs/reference/components/dash-video.md +1 -1
- package/docs/reference/components/google-cast.md +1 -1
- package/docs/reference/components/hls-audio.md +3 -2
- package/docs/reference/components/hls-background-video.md +1 -1
- package/docs/reference/components/hls-video.md +13 -2
- package/docs/reference/components/hlsjs-video.md +11 -1
- package/docs/reference/components/icons.md +2 -1
- package/docs/reference/components/live-audio-compat-skin.md +35 -4
- package/docs/reference/components/live-audio-neutral-skin.md +36 -5
- package/docs/reference/components/live-audio-scaffold-skin.md +41 -0
- package/docs/reference/components/live-audio-skin.md +36 -5
- package/docs/reference/components/live-video-compat-skin.md +36 -4
- package/docs/reference/components/live-video-neutral-skin.md +37 -5
- package/docs/reference/components/live-video-scaffold-skin.md +47 -0
- package/docs/reference/components/live-video-skin.md +37 -5
- package/docs/reference/components/llms.txt +6 -1
- 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 +1 -1
- package/docs/reference/components/mux-video.md +2 -2
- package/docs/reference/components/native-hls-video.md +1 -1
- package/docs/reference/components/player-container.md +1 -1
- package/docs/reference/components/player.md +4 -4
- package/docs/reference/components/playerjs-video.md +197 -0
- package/docs/reference/components/shaka-video.md +1 -1
- package/docs/reference/components/spotify-audio.md +1 -1
- package/docs/reference/components/thumbnail.md +5 -5
- 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 +36 -3
- package/docs/reference/components/video-neutral-skin.md +37 -4
- package/docs/reference/components/video-scaffold-skin.md +51 -0
- package/docs/reference/components/video-skin.md +37 -4
- package/docs/reference/components/video.md +1 -1
- package/docs/reference/components/vimeo-video.md +1 -1
- package/docs/reference/components/wistia-video.md +5 -1
- package/docs/reference/components/youtube-video.md +2 -2
- package/package.json +44 -41
package/docs/guides/autoplay.md
CHANGED
|
@@ -6,7 +6,7 @@ For the best chance of autoplay succeeding, start playback muted and enable inli
|
|
|
6
6
|
|
|
7
7
|
## Recommended approach
|
|
8
8
|
|
|
9
|
-
Set autoplay, muted, and inline playback on the media
|
|
9
|
+
Set autoplay, muted, and inline playback on the media component, and keep a manual play control available for when autoplay is blocked.
|
|
10
10
|
|
|
11
11
|
**index.html**
|
|
12
12
|
|
|
@@ -112,7 +112,7 @@ These components default to muted, looping playback without player controls. Pro
|
|
|
112
112
|
|
|
113
113
|
Do not rely on unmuted autoplay for a user’s first visit. Start playback from an explicit user action instead.
|
|
114
114
|
|
|
115
|
-
Call `play()` on the media
|
|
115
|
+
Call `play()` on the media component from a click handler:
|
|
116
116
|
|
|
117
117
|
```html
|
|
118
118
|
<video-player>
|
|
@@ -148,7 +148,7 @@ If autoplay is blocked, the player stays paused and the Play button remains in i
|
|
|
148
148
|
|
|
149
149
|
### The video opens fullscreen on iPhone
|
|
150
150
|
|
|
151
|
-
Enable inline playback with the `playsinline` attribute on the media
|
|
151
|
+
Enable inline playback with the `playsinline` attribute on the media component.
|
|
152
152
|
|
|
153
153
|
### The video starts without sound
|
|
154
154
|
|
|
@@ -121,7 +121,7 @@ The old `npx @videojs/cli docs` workflow was removed. `@videojs/cli` now contain
|
|
|
121
121
|
|
|
122
122
|
If your agent does not use the skill, start a new session or reload plugins, then ask it to use the Video.js skill explicitly. If it writes `videojs()`, `data-setup`, `registerPlugin`, or other Video.js 8 APIs, ask it to read the installed `llms.txt` before changing code.
|
|
123
123
|
|
|
124
|
-
Report problems with the skill in the [videojs/skills repository](https://github.com/videojs/skills/issues). Report package and documentation problems in [videojs/
|
|
124
|
+
Report problems with the skill in the [videojs/skills repository](https://github.com/videojs/skills/issues). Report package and documentation problems in [videojs/video.js](https://github.com/videojs/video.js/issues).
|
|
125
125
|
|
|
126
126
|
## Use the docs
|
|
127
127
|
|
package/docs/guides/captions.md
CHANGED
|
@@ -8,7 +8,7 @@ Show captions and subtitles, and let users turn them on and pick a language.
|
|
|
8
8
|
|
|
9
9
|
## Recommended approach
|
|
10
10
|
|
|
11
|
-
Add WebVTT tracks as `<track>` children of the media
|
|
11
|
+
Add WebVTT tracks as `<track>` children of the media component, and give users a [`<media-captions-button>`](../reference/components/captions-button.md) to toggle them.
|
|
12
12
|
|
|
13
13
|
The `<track>` loads `/docs/demos/text-tracks/captions.vtt`, shown in the `captions.vtt` tab. Host a WebVTT file for your video and point `src` at its URL.
|
|
14
14
|
|
|
@@ -93,7 +93,7 @@ Toggle captions on and off with a single click.
|
|
|
93
93
|
|
|
94
94
|
## How it works
|
|
95
95
|
|
|
96
|
-
The [text track feature](../reference/api/feature-text-tracks.md) mirrors the media
|
|
96
|
+
The [text track feature](../reference/api/feature-text-tracks.md) mirrors the media component’s `textTracks` into player state:
|
|
97
97
|
|
|
98
98
|
- `textTrackList` holds every track with its `id`, `kind`, `label`, `language`, and `mode`.
|
|
99
99
|
- `subtitlesShowing` is `true` when any caption or subtitle track is showing.
|
|
@@ -108,7 +108,7 @@ The browser renders the cues. Style them with the `::cue` pseudo-element.
|
|
|
108
108
|
|
|
109
109
|
- Captions availability is `'unavailable'` until the media has at least one caption or subtitle track; caption controls render nothing in that case.
|
|
110
110
|
- Cues load asynchronously. A track appears in `textTrackList` before its cues are parsed, so cue-driven UI fills in when the track finishes loading.
|
|
111
|
-
- Cross-origin track files require CORS: serve the VTT with CORS headers and set `crossorigin` on the media
|
|
111
|
+
- Cross-origin track files require CORS: serve the VTT with CORS headers and set `crossorigin` on the media component.
|
|
112
112
|
- Track selection UIs identify tracks by `label` and `language`; give every track both.
|
|
113
113
|
- `default` on a `<track>` marks it as the preferred initial track. The browser’s caption preferences can select another track.
|
|
114
114
|
|
|
@@ -155,7 +155,7 @@ Confirm that:
|
|
|
155
155
|
|
|
156
156
|
### Captions work locally but not in production
|
|
157
157
|
|
|
158
|
-
The track file is served from another origin without CORS headers. Serve it with `Access-Control-Allow-Origin` and set `crossorigin` on the media
|
|
158
|
+
The track file is served from another origin without CORS headers. Serve it with `Access-Control-Allow-Origin` and set `crossorigin` on the media component.
|
|
159
159
|
|
|
160
160
|
### The captions menu is empty
|
|
161
161
|
|
|
@@ -176,5 +176,5 @@ The radio group hides when there are no caption or subtitle tracks, but the exam
|
|
|
176
176
|
### Guides
|
|
177
177
|
|
|
178
178
|
- [Show timeline thumbnail previews](./thumbnails.md): Preview frames along the timeline while the user scrubs, powered by a storyboard track.
|
|
179
|
-
- [Media sources](./media-sources.md): Set what a media
|
|
179
|
+
- [Media sources](./media-sources.md): Set what a media component plays and how its engine plays it with the structured source property
|
|
180
180
|
- [Accessibility](./accessibility.md): How Video.js approaches accessibility, and what you should consider if you're deeply customizing your player
|
package/docs/guides/casting.md
CHANGED
|
@@ -116,7 +116,7 @@ import '@videojs/html/ui/airplay-button';
|
|
|
116
116
|
import '@videojs/html/ui/cast-button';
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
-
The demo pairs the media
|
|
119
|
+
The demo pairs the media component with the `<google-cast>` extension. Without that extension, `<media-cast-button>` drives the browser’s native Remote Playback API instead, which does not provide Video.js receiver or load-request configuration.
|
|
120
120
|
|
|
121
121
|
## How it works
|
|
122
122
|
|
|
@@ -130,7 +130,7 @@ AirPlay uses WebKit’s presentation APIs. Google Cast uses a sender and receive
|
|
|
130
130
|
|
|
131
131
|
While connected, playback actions — play, pause, seek, volume — proxy to the remote device, and player state keeps reflecting the remote session. Local playback is suspended.
|
|
132
132
|
|
|
133
|
-
Control playback and read its state through the player while casting: use the built-in controls or the [store actions and state](../reference/api/player-store.md) on the player element’s `store`. Don’t call methods on the media
|
|
133
|
+
Control playback and read its state through the player while casting: use the built-in controls or the [store actions and state](../reference/api/player-store.md) on the player element’s `store`. Don’t call methods on the media component or listen for its events to drive or track a session.
|
|
134
134
|
|
|
135
135
|
For a custom control, call `promptRemotePlayback()` directly from the click handler and catch its promise. It rejects when no remote route exists or the browser refuses the request. A canceled Google Cast picker can also resolve without connecting, so show success only when `remotePlaybackState` is `'connected'`. The built-in buttons handle the request for you.
|
|
136
136
|
|
|
@@ -142,7 +142,7 @@ The Google Cast SDK loads only when the player includes the `<google-cast>` exte
|
|
|
142
142
|
- Google Cast works only in Chromium-based browsers; elsewhere its route reports `'unsupported'`.
|
|
143
143
|
- AirPlay works only in Safari; availability requires an AirPlay device reachable on the network.
|
|
144
144
|
- The remote device fetches the source and its text tracks on its own. Localhost, VPN-only, expired, or cross-origin URLs without the necessary CORS headers will fail on the receiver even if they play in the browser.
|
|
145
|
-
- Set the `disableremoteplayback` attribute on the media
|
|
145
|
+
- Set the `disableremoteplayback` attribute on the media component to opt out entirely.
|
|
146
146
|
|
|
147
147
|
## Common variations
|
|
148
148
|
|
|
@@ -172,7 +172,7 @@ The receiver cannot fetch the media. Confirm the source URL is reachable from th
|
|
|
172
172
|
|
|
173
173
|
### Custom UI shows local playback while casting
|
|
174
174
|
|
|
175
|
-
The code reads or controls the media
|
|
175
|
+
The code reads or controls the media component directly. Read playback state from the player store and call its actions instead; only the player reflects the remote session.
|
|
176
176
|
|
|
177
177
|
### The UI freezes on “connecting”
|
|
178
178
|
|
|
@@ -193,4 +193,4 @@ For Google Cast, track the `promptRemotePlayback()` promise separately from `rem
|
|
|
193
193
|
|
|
194
194
|
### Guides
|
|
195
195
|
|
|
196
|
-
- [Media sources](./media-sources.md): Set what a media
|
|
196
|
+
- [Media sources](./media-sources.md): Set what a media component plays and how its engine plays it with the structured source property
|
package/docs/guides/cdn.md
CHANGED
|
@@ -27,7 +27,7 @@ Each installation [preset](./presets.md) ships its bundles at the package root:
|
|
|
27
27
|
| `video-compat.js` | `<video-player>`, `<video-compat-skin>`, and the UI elements the compat skin composes |
|
|
28
28
|
| `video-player.js` | `<video-player>` alone, for markup without a packaged skin |
|
|
29
29
|
|
|
30
|
-
The other presets follow the same pattern. Background video is the exception: one bundle, `background.js`, registers the player, the skin, and the `<background-video>` media
|
|
30
|
+
The other presets follow the same pattern. Background video is the exception: one bundle, `background.js`, registers the player, the skin, and the `<background-video>` media component.
|
|
31
31
|
|
|
32
32
|
A skin bundle registers every UI element its skin is built from. Any element the skin does not compose is its own bundle under `ui/`.
|
|
33
33
|
|
|
@@ -36,19 +36,19 @@ A skin bundle registers every UI element its skin is built from. Any element the
|
|
|
36
36
|
Each [UI element](./ui-components.md) is its own bundle under `ui/`, for markup that a skin bundle does not already cover: a player-only bundle, [skin source](./customize-skins.md#style-skin-source) that adds a component the packaged skin lacks, or a [dialog](../reference/components/dialog.md) your page opens beside a packaged skin.
|
|
37
37
|
|
|
38
38
|
```html
|
|
39
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
40
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
39
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/video-player.js"></script>
|
|
40
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/ui/play-button.js"></script>
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
Each path mirrors its npm subpath: `ui/play-button.js` registers the element that `@videojs/html/ui/play-button` does. Compound components list one bundle per part in their reference page’s Import section, and all of the bundles share chunks with the player.
|
|
44
44
|
|
|
45
45
|
## Media bundles
|
|
46
46
|
|
|
47
|
-
The default presets play through the browser’s own `<video>` and `<audio>`. Every other [media
|
|
47
|
+
The default presets play through the browser’s own `<video>` and `<audio>`. Every other [media component](./media-sources.md) is its own bundle under `media/`, loaded beside the player bundle:
|
|
48
48
|
|
|
49
49
|
```html
|
|
50
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
51
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
50
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/video.js"></script>
|
|
51
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/media/hlsjs-video.js"></script>
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
Each path mirrors its npm subpath. Elements with more than one playback engine keep the extra flavors in a directory named for the element, such as `media/mux-video/spf.js`. Load one flavor per page: every flavor claims the same tag name, and the first registration wins.
|
|
@@ -58,9 +58,9 @@ Each path mirrors its npm subpath. Elements with more than one playback engine k
|
|
|
58
58
|
Each [extension](./architecture.md) is its own bundle under `extensions/`, loaded beside the player and media bundles:
|
|
59
59
|
|
|
60
60
|
```html
|
|
61
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
62
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
63
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
61
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/video.js"></script>
|
|
62
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/media/mux-video.js"></script>
|
|
63
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/extensions/mux-data.js"></script>
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
As with media, each path mirrors its npm subpath: `extensions/mux-data.js` registers the element that `@videojs/html/extensions/mux-data` does.
|
|
@@ -70,8 +70,8 @@ As with media, each path mirrors its npm subpath: `extensions/mux-data.js` regis
|
|
|
70
70
|
English ships inside the skin bundles. Each other locale is a bundle under `locales/` that registers its translations on import. Load it before the player script to avoid a flash of English:
|
|
71
71
|
|
|
72
72
|
```html
|
|
73
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
74
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
73
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/locales/es.js"></script>
|
|
74
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/video.js"></script>
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
One bundle exists per locale pack, plus bare-language aliases such as `pt`. For custom strings, see [Internationalize the player](./internationalization.md).
|
|
@@ -38,7 +38,7 @@ If you omit `--media-accent-text-color`, the skins choose a contrasting text col
|
|
|
38
38
|
|
|
39
39
|
The skins use [`Inter`](https://rsms.me/inter/) when your page loads it and fall back to the system UI font. Video.js does not load the webfont for you. Set `--media-font-family` to use another font.
|
|
40
40
|
|
|
41
|
-
The media
|
|
41
|
+
The media component and poster share `--media-object-fit` and `--media-object-position`, so a `cover` poster stays aligned with `cover` video. See [Add a poster and loading placeholder](./poster.md).
|
|
42
42
|
|
|
43
43
|
### Set the color scheme
|
|
44
44
|
|
|
@@ -96,7 +96,7 @@ The Shadcn installation guide handles project setup, lets you choose the skin an
|
|
|
96
96
|
|
|
97
97
|
### Use the installed skin
|
|
98
98
|
|
|
99
|
-
The skin directory contains `skin.html`, `skin.ts`, and `skin.css`. Keep importing the player and media from `@videojs/html`. Import the installed `skin.ts` once, then paste the markup from `skin.html` inside your player around the media
|
|
99
|
+
The skin directory contains `skin.html`, `skin.ts`, and `skin.css`. Keep importing the player and media from `@videojs/html`. Import the installed `skin.ts` once, then paste the markup from `skin.html` inside your player around the media component.
|
|
100
100
|
|
|
101
101
|
### Edit the installed files
|
|
102
102
|
|
package/docs/guides/features.md
CHANGED
|
@@ -24,7 +24,7 @@ For example, if you import `<video-player>` from the `/video` path, you will hav
|
|
|
24
24
|
</video-player>
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
Feature bundles are usually paired with specific skins and media
|
|
27
|
+
Feature bundles are usually paired with specific skins and media components in a **preset**. To learn more about this, and the available presets, you’ll want to check out the presets guide.
|
|
28
28
|
|
|
29
29
|
- [Learn more about presets](./presets.md)
|
|
30
30
|
|
|
@@ -77,7 +77,7 @@ import '@videojs/html/ui/fullscreen-button';
|
|
|
77
77
|
The [fullscreen feature](../reference/api/feature-fullscreen.md) tracks fullscreen state and provides the actions:
|
|
78
78
|
|
|
79
79
|
- `isFullscreen` is `true` while the player is fullscreen, from any path — your button, native controls, or the platform presentation.
|
|
80
|
-
- `fullscreenAvailability` is `'available'`, `'unavailable'`, or `'unsupported'`. It starts as `'unavailable'`, then settles to `'available'` or `'unsupported'` when the feature attaches to a media
|
|
80
|
+
- `fullscreenAvailability` is `'available'`, `'unavailable'`, or `'unsupported'`. It starts as `'unavailable'`, then settles to `'available'` or `'unsupported'` when the feature attaches to a media component.
|
|
81
81
|
- `requestFullscreen()` and `exitFullscreen()` change the presentation. When the Fullscreen API is available, requests target the player container. Otherwise they fall back to the media element’s native presentation.
|
|
82
82
|
|
|
83
83
|
Fullscreen and picture-in-picture are exclusive: requesting fullscreen exits an active picture-in-picture presentation first.
|
|
@@ -30,7 +30,7 @@ npx @videojs/cli agents init
|
|
|
30
30
|
|
|
31
31
|
- `project`: Whether to adapt the current project or scaffold a new one. New projects need a named app setup. Values: `new`, `existing`. Default: existing.
|
|
32
32
|
- `preset`: The player configuration and control set. Values: `video`, `audio`, `live-video`, `live-audio`, `background-video`. Default: video.
|
|
33
|
-
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`, `none`. Default: default. Applies when preset is not background-video.
|
|
33
|
+
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`, `scaffold`, `none`. Default: default. Applies when preset is not background-video.
|
|
34
34
|
- `media`: The media source or playback adapter. See the preset compatibility map below. Values: `background-video`, `hls-background-video`, `cloudflare`, `dash`, `hls`, `html5-audio`, `html5-video`, `mux-audio`, `mux-background-video`, `mux-video`, `spotify`, `tiktok`, `twitch`, `vimeo`, `youtube`. Default: the selected preset's first compatible media source.
|
|
35
35
|
- `extensions`: A comma-separated list of optional player extensions compatible with the selected player. Pass `none` when no extension is needed. Values: `none`, `google-cast`, `mux-data`. Default: mux-data for Mux media; none otherwise (reported as defaulted).
|
|
36
36
|
- `source-url`: The http:// or https:// media URL placed in the generated player example. Pass `demo` to choose the Video.js demo source for the selected media explicitly. Default: the Video.js demo source for the selected media (reported as defaulted).
|
|
@@ -89,7 +89,7 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
89
89
|
## Reproduce or change these instructions
|
|
90
90
|
|
|
91
91
|
```sh
|
|
92
|
-
npx @videojs/cli@10.
|
|
92
|
+
npx @videojs/cli@10.1.0 agents init --method cdn --framework html --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --template none
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
## Load Video.js
|
|
@@ -101,7 +101,7 @@ Add these module scripts to the page head. Module scripts are deferred, so they
|
|
|
101
101
|
_Merge this into the page `<head>`._
|
|
102
102
|
|
|
103
103
|
```html
|
|
104
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
104
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/video.js"></script>
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
## Add your player
|
|
@@ -129,7 +129,7 @@ _Merge this into the page `<body>` where the player should appear._
|
|
|
129
129
|
and display of the media. They are easily swappable
|
|
130
130
|
to handle different sources.
|
|
131
131
|
-->
|
|
132
|
-
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>
|
|
132
|
+
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline><a href="https://videojs.org/help">Video player not working?</a></video>
|
|
133
133
|
</video-skin>
|
|
134
134
|
</video-player>
|
|
135
135
|
```
|
|
@@ -31,7 +31,7 @@ npx @videojs/cli agents init
|
|
|
31
31
|
- `framework`: The application framework that will host the player. React installs @videojs/react; HTML, Vue, and Svelte install @videojs/html. Values: `react`, `html`. Default: react.
|
|
32
32
|
- `project`: Whether to adapt the current project or scaffold a new one. New projects need a named app setup. Values: `new`, `existing`. Default: existing.
|
|
33
33
|
- `preset`: The player configuration and control set. Values: `video`, `audio`, `live-video`, `live-audio`. Default: video.
|
|
34
|
-
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`. Default: default. Applies when preset is not background-video.
|
|
34
|
+
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`, `scaffold`. Default: default. Applies when preset is not background-video.
|
|
35
35
|
- `media`: The media source or playback adapter. See the preset compatibility map below. Values: `background-video`, `hls-background-video`, `cloudflare`, `dash`, `hls`, `html5-audio`, `html5-video`, `mux-audio`, `mux-background-video`, `mux-video`, `spotify`, `tiktok`, `twitch`, `vimeo`, `youtube`. Default: the selected preset's first compatible media source.
|
|
36
36
|
- `extensions`: A comma-separated list of optional player extensions compatible with the selected player. Pass `none` when no extension is needed. Values: `none`, `google-cast`, `mux-data`. Default: mux-data for Mux media; none otherwise (reported as defaulted).
|
|
37
37
|
- `source-url`: The http:// or https:// media URL placed in the generated player example. Pass `demo` to choose the Video.js demo source for the selected media explicitly. Default: the Video.js demo source for the selected media (reported as defaulted).
|
|
@@ -94,7 +94,7 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
94
94
|
## Reproduce or change these instructions
|
|
95
95
|
|
|
96
96
|
```sh
|
|
97
|
-
npx @videojs/cli@10.
|
|
97
|
+
npx @videojs/cli@10.1.0 agents init --method shadcn --framework html --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --package-manager pnpm --template vite --styling css
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
## Configure app aliases
|
|
@@ -214,7 +214,7 @@ pnpm dlx shadcn@latest registry add @videojs=https://shadcn.videojs.org/r/html/{
|
|
|
214
214
|
|
|
215
215
|
## Add the skin source
|
|
216
216
|
|
|
217
|
-
Make sure the working tree is clean or checkpointed so every added or replaced file is reviewable; ask before committing. The add command overwrites an existing Video.js skin so catalog and theme changes fully apply. Review and remove obsolete Video.js style files left by a previous catalog. The later media step restores the selected media
|
|
217
|
+
Make sure the working tree is clean or checkpointed so every added or replaced file is reviewable; ask before committing. The add command overwrites an existing Video.js skin so catalog and theme changes fully apply. Review and remove obsolete Video.js style files left by a previous catalog. The later media step restores the selected media component after an overwrite.
|
|
218
218
|
|
|
219
219
|
```bash
|
|
220
220
|
pnpm dlx shadcn@latest add @videojs/video --overwrite --yes
|
|
@@ -222,14 +222,14 @@ pnpm dlx shadcn@latest add @videojs/video --overwrite --yes
|
|
|
222
222
|
|
|
223
223
|
## Add your player
|
|
224
224
|
|
|
225
|
-
Use the aliases.components value from components.json when it differs from the generated @/components path: the skin file then lives under the directory that alias maps to instead of src/components, and the skin import uses that alias. Replace the <!-- Add a compatible media
|
|
225
|
+
Use the aliases.components value from components.json when it differs from the generated @/components path: the skin file then lives under the directory that alias maps to instead of src/components, and the skin import uses that alias. Replace the <!-- Add a compatible media component here. --> placeholder in src/components/videojs/video/skin.html with the media snippet below. Size the video on the skin's root media-container by replacing its opening <media-container with the snippet below. Then replace the <!-- Paste the contents of src/components/videojs/video/skin.html here. --> comment in the page with the complete updated skin markup. Merge the example into the existing Vite route or component that should render the player, and preserve unrelated content.
|
|
226
226
|
|
|
227
227
|
### `src/components/videojs/video/skin.html`
|
|
228
228
|
|
|
229
|
-
_Replace `<!-- Add a compatible media
|
|
229
|
+
_Replace `<!-- Add a compatible media component here. -->` with this block._
|
|
230
230
|
|
|
231
231
|
```html
|
|
232
|
-
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>
|
|
232
|
+
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline><a href="https://videojs.org/help">Video player not working?</a></video>
|
|
233
233
|
```
|
|
234
234
|
|
|
235
235
|
### `src/components/videojs/video/skin.html`
|
|
@@ -30,7 +30,7 @@ npx @videojs/cli agents init
|
|
|
30
30
|
|
|
31
31
|
- `project`: Whether to adapt the current project or scaffold a new one. New projects need a named app setup. Values: `new`, `existing`. Default: existing.
|
|
32
32
|
- `preset`: The player configuration and control set. Values: `video`, `audio`, `live-video`, `live-audio`, `background-video`. Default: video.
|
|
33
|
-
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`, `none`. Default: default. Applies when preset is not background-video.
|
|
33
|
+
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`, `scaffold`, `none`. Default: default. Applies when preset is not background-video.
|
|
34
34
|
- `media`: The media source or playback adapter. See the preset compatibility map below. Values: `background-video`, `hls-background-video`, `cloudflare`, `dash`, `hls`, `html5-audio`, `html5-video`, `mux-audio`, `mux-background-video`, `mux-video`, `spotify`, `tiktok`, `twitch`, `vimeo`, `youtube`. Default: the selected preset's first compatible media source.
|
|
35
35
|
- `extensions`: A comma-separated list of optional player extensions compatible with the selected player. Pass `none` when no extension is needed. Values: `none`, `google-cast`, `mux-data`. Default: mux-data for Mux media; none otherwise (reported as defaulted).
|
|
36
36
|
- `source-url`: The http:// or https:// media URL placed in the generated player example. Pass `demo` to choose the Video.js demo source for the selected media explicitly. Default: the Video.js demo source for the selected media (reported as defaulted).
|
|
@@ -90,13 +90,13 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
90
90
|
## Reproduce or change these instructions
|
|
91
91
|
|
|
92
92
|
```sh
|
|
93
|
-
npx @videojs/cli@10.
|
|
93
|
+
npx @videojs/cli@10.1.0 agents init --method packaged --framework svelte --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --package-manager pnpm --template vite
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
## Install the packages
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
|
-
pnpm add @videojs/html@10.
|
|
99
|
+
pnpm add @videojs/html@10.1.0
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
## Add your player
|
|
@@ -152,7 +152,7 @@ _Merge this into the existing file, or create the file when it is missing._
|
|
|
152
152
|
</script>
|
|
153
153
|
|
|
154
154
|
<VideoPlayer>
|
|
155
|
-
<video src={"https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"} playsinline></video>
|
|
155
|
+
<video src={"https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4"} playsinline><a href="https://videojs.org/help">Video player not working?</a></video>
|
|
156
156
|
</VideoPlayer>
|
|
157
157
|
```
|
|
158
158
|
|
|
@@ -191,4 +191,4 @@ That’s it! You now have a working Video.js player.
|
|
|
191
191
|
- [CDN](./cdn.md): See every bundle the CDN serves and the layout rules behind the URLs
|
|
192
192
|
- [Self-host the player](./self-hosting.md): Serve the player from your own origin for offline or restricted-network deployments
|
|
193
193
|
|
|
194
|
-
Something not quite right? You can [submit an issue](https://github.com/videojs/
|
|
194
|
+
Something not quite right? You can [submit an issue](https://github.com/videojs/video.js/issues) and ask for help, or explore [other support options](https://videojs.org/support).
|
|
@@ -30,7 +30,7 @@ npx @videojs/cli agents init
|
|
|
30
30
|
|
|
31
31
|
- `project`: Whether to adapt the current project or scaffold a new one. New projects need a named app setup. Values: `new`, `existing`. Default: existing.
|
|
32
32
|
- `preset`: The player configuration and control set. Values: `video`, `audio`, `live-video`, `live-audio`, `background-video`. Default: video.
|
|
33
|
-
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`, `none`. Default: default. Applies when preset is not background-video.
|
|
33
|
+
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`, `scaffold`, `none`. Default: default. Applies when preset is not background-video.
|
|
34
34
|
- `media`: The media source or playback adapter. See the preset compatibility map below. Values: `background-video`, `hls-background-video`, `cloudflare`, `dash`, `hls`, `html5-audio`, `html5-video`, `mux-audio`, `mux-background-video`, `mux-video`, `spotify`, `tiktok`, `twitch`, `vimeo`, `youtube`. Default: the selected preset's first compatible media source.
|
|
35
35
|
- `extensions`: A comma-separated list of optional player extensions compatible with the selected player. Pass `none` when no extension is needed. Values: `none`, `google-cast`, `mux-data`. Default: mux-data for Mux media; none otherwise (reported as defaulted).
|
|
36
36
|
- `source-url`: The http:// or https:// media URL placed in the generated player example. Pass `demo` to choose the Video.js demo source for the selected media explicitly. Default: the Video.js demo source for the selected media (reported as defaulted).
|
|
@@ -90,13 +90,13 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
90
90
|
## Reproduce or change these instructions
|
|
91
91
|
|
|
92
92
|
```sh
|
|
93
|
-
npx @videojs/cli@10.
|
|
93
|
+
npx @videojs/cli@10.1.0 agents init --method packaged --framework vue --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --package-manager pnpm --template vite
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
## Install the packages
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
|
-
pnpm add @videojs/html@10.
|
|
99
|
+
pnpm add @videojs/html@10.1.0
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
## Register custom elements
|
|
@@ -182,7 +182,7 @@ import VideoPlayer from './components/VideoPlayer.vue';
|
|
|
182
182
|
|
|
183
183
|
<template>
|
|
184
184
|
<VideoPlayer>
|
|
185
|
-
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>
|
|
185
|
+
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline><a href="https://videojs.org/help">Video player not working?</a></video>
|
|
186
186
|
</VideoPlayer>
|
|
187
187
|
</template>
|
|
188
188
|
```
|
|
@@ -222,4 +222,4 @@ That’s it! You now have a working Video.js player.
|
|
|
222
222
|
- [CDN](./cdn.md): See every bundle the CDN serves and the layout rules behind the URLs
|
|
223
223
|
- [Self-host the player](./self-hosting.md): Serve the player from your own origin for offline or restricted-network deployments
|
|
224
224
|
|
|
225
|
-
Something not quite right? You can [submit an issue](https://github.com/videojs/
|
|
225
|
+
Something not quite right? You can [submit an issue](https://github.com/videojs/video.js/issues) and ask for help, or explore [other support options](https://videojs.org/support).
|
|
@@ -30,7 +30,7 @@ npx @videojs/cli agents init
|
|
|
30
30
|
|
|
31
31
|
- `project`: Whether to adapt the current project or scaffold a new one. New projects need a named app setup. Values: `new`, `existing`. Default: existing.
|
|
32
32
|
- `preset`: The player configuration and control set. Values: `video`, `audio`, `live-video`, `live-audio`, `background-video`. Default: video.
|
|
33
|
-
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`, `none`. Default: default. Applies when preset is not background-video.
|
|
33
|
+
- `skin`: The visual skin. Neutral has cleaner surfaces and the same controls as Default. Values: `default`, `neutral`, `compat`, `scaffold`, `none`. Default: default. Applies when preset is not background-video.
|
|
34
34
|
- `media`: The media source or playback adapter. See the preset compatibility map below. Values: `background-video`, `hls-background-video`, `cloudflare`, `dash`, `hls`, `html5-audio`, `html5-video`, `mux-audio`, `mux-background-video`, `mux-video`, `spotify`, `tiktok`, `twitch`, `vimeo`, `youtube`. Default: the selected preset's first compatible media source.
|
|
35
35
|
- `extensions`: A comma-separated list of optional player extensions compatible with the selected player. Pass `none` when no extension is needed. Values: `none`, `google-cast`, `mux-data`. Default: mux-data for Mux media; none otherwise (reported as defaulted).
|
|
36
36
|
- `source-url`: The http:// or https:// media URL placed in the generated player example. Pass `demo` to choose the Video.js demo source for the selected media explicitly. Default: the Video.js demo source for the selected media (reported as defaulted).
|
|
@@ -92,13 +92,13 @@ Defaulted options: project, preset, skin, source-url, media, extensions, templat
|
|
|
92
92
|
## Reproduce or change these instructions
|
|
93
93
|
|
|
94
94
|
```sh
|
|
95
|
-
npx @videojs/cli@10.
|
|
95
|
+
npx @videojs/cli@10.1.0 agents init --method packaged --framework html --project existing --preset video --skin default --media html5-video --extensions none --source-url https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4 --package-manager pnpm --template vite
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
## Install the packages
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
pnpm add @videojs/html@10.
|
|
101
|
+
pnpm add @videojs/html@10.1.0
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
## Add your player
|
|
@@ -135,7 +135,7 @@ _Merge this into the page `<body>` where the player should appear._
|
|
|
135
135
|
and display of the media. They are easily swappable
|
|
136
136
|
to handle different sources.
|
|
137
137
|
-->
|
|
138
|
-
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline></video>
|
|
138
|
+
<video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4" playsinline><a href="https://videojs.org/help">Video player not working?</a></video>
|
|
139
139
|
</video-skin>
|
|
140
140
|
</video-player>
|
|
141
141
|
|
|
@@ -179,4 +179,4 @@ Packaged skins keep their controls and layout inside Video.js. When you need to
|
|
|
179
179
|
- [CDN](./cdn.md): See every bundle the CDN serves and the layout rules behind the URLs
|
|
180
180
|
- [Self-host the player](./self-hosting.md): Serve the player from your own origin for offline or restricted-network deployments
|
|
181
181
|
|
|
182
|
-
Something not quite right? You can [submit an issue](https://github.com/videojs/
|
|
182
|
+
Something not quite right? You can [submit an issue](https://github.com/videojs/video.js/issues) and ask for help, or explore [other support options](https://videojs.org/support).
|
|
@@ -199,8 +199,8 @@ import '@videojs/html/i18n/locales/ja/register';
|
|
|
199
199
|
CDN locale modules call `registerI18n` on import. Pin every URL to the same version:
|
|
200
200
|
|
|
201
201
|
```html
|
|
202
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
203
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
202
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/locales/es.js"></script>
|
|
203
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/video.js"></script>
|
|
204
204
|
```
|
|
205
205
|
|
|
206
206
|
Use the same pinned version for your locale pack, `i18n.js`, and player script. Copies loaded in the same window share a registry; matching versions keeps their translation keys and APIs compatible. Import the full locale pack before partial overrides, and register before the player loads to translate the first render:
|
|
@@ -208,15 +208,15 @@ Use the same pinned version for your locale pack, `i18n.js`, and player script.
|
|
|
208
208
|
**my-locale.js**
|
|
209
209
|
|
|
210
210
|
```js
|
|
211
|
-
import 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
212
|
-
import { registerI18n } from 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
211
|
+
import 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/locales/es.js';
|
|
212
|
+
import { registerI18n } from 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/i18n.js';
|
|
213
213
|
|
|
214
214
|
registerI18n('es', { buttons: { play: 'Reproducir', pause: 'Pausa' } });
|
|
215
215
|
```
|
|
216
216
|
|
|
217
217
|
```html
|
|
218
218
|
<script type="module" src="/my-locale.js"></script>
|
|
219
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
219
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/video.js"></script>
|
|
220
220
|
```
|
|
221
221
|
|
|
222
222
|
### Switch locale at runtime
|
|
@@ -16,7 +16,7 @@ pnpm add @videojs/html @videojs/hlsjs-video
|
|
|
16
16
|
|
|
17
17
|
## Recommended approach
|
|
18
18
|
|
|
19
|
-
Use the live feature bundle with a streaming media
|
|
19
|
+
Use the live feature bundle with a streaming media component, and give users a `<media-live-button>`: it shows whether playback is at the live edge and seeks back to it when activated.
|
|
20
20
|
|
|
21
21
|
```html
|
|
22
22
|
<live-video-player>
|
|
@@ -119,7 +119,7 @@ Render live or on-demand controls from `streamType` when one player handles both
|
|
|
119
119
|
|
|
120
120
|
### The live badge never activates
|
|
121
121
|
|
|
122
|
-
`<media-live-button>` reads `targetLiveWindow`, `currentTime`, and `seekable`. Confirm that `targetLiveWindow` is `0` or `Infinity` and that `seekable` has a finite end. Use a live-capable media
|
|
122
|
+
`<media-live-button>` reads `targetLiveWindow`, `currentTime`, and `seekable`. Confirm that `targetLiveWindow` is `0` or `Infinity` and that `seekable` has a finite end. Use a live-capable media component such as [`<hlsjs-video>`](../reference/components/hlsjs-video.md). The live button does not need `streamTypeFeature`; add it only when your own UI reads `streamType`.
|
|
123
123
|
|
|
124
124
|
### Playback keeps falling behind the edge
|
|
125
125
|
|
|
@@ -145,4 +145,4 @@ Compare the slider’s range with `seekable`. The built-in slider always starts
|
|
|
145
145
|
|
|
146
146
|
### Guides
|
|
147
147
|
|
|
148
|
-
- [Media sources](./media-sources.md): Set what a media
|
|
148
|
+
- [Media sources](./media-sources.md): Set what a media component plays and how its engine plays it with the structured source property
|
package/docs/guides/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Video.js v10 — HTML Guides
|
|
2
2
|
|
|
3
|
-
> Installation, migration, concepts, playback guides, customization, and tooling for Video.js. Bundled with `@videojs/html` v10.
|
|
3
|
+
> Installation, migration, concepts, playback guides, customization, and tooling for Video.js. Bundled with `@videojs/html` v10.1.0. Links are relative paths to files in this directory.
|
|
4
4
|
|
|
5
5
|
## Getting Started
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@ Install Video.js, customize a skin, understand its main pieces, check browser an
|
|
|
18
18
|
- [Browser support](./browser-support.md): Browsers and rendering environments supported by Video.js 10, and how the packaged skins reach them
|
|
19
19
|
- [Build with AI](./build-with-ai.md): Install the Video.js skill and give AI coding agents version-matched docs for building and migrating players
|
|
20
20
|
- [v10 Roadmap](./v10-roadmap.md): Where Video.js v10 stands, what comes after 10.0, and the support plan for Video.js 8
|
|
21
|
-
- [Contribute to Video.js](https://github.com/videojs/
|
|
21
|
+
- [Contribute to Video.js](https://github.com/videojs/video.js/blob/main/CONTRIBUTING.md)
|
|
22
22
|
|
|
23
23
|
## Frameworks
|
|
24
24
|
|
|
@@ -43,10 +43,10 @@ Understanding-oriented pages that explain how and why things work. Read these to
|
|
|
43
43
|
|
|
44
44
|
- [Features](./features.md): The state and actions each feature adds to the player
|
|
45
45
|
- [Skins](./skins.md): Packaged player designs that include both UI components and their styles.
|
|
46
|
-
- [Presets](./presets.md): Pre-packaged player configurations that bundle state management, skins, and media
|
|
46
|
+
- [Presets](./presets.md): Pre-packaged player configurations that bundle state management, skins, and media components for specific use cases.
|
|
47
47
|
- [UI components](./ui-components.md): How Video.js UI components use focused elements, data attributes for state, and compound composition.
|
|
48
48
|
- [Accessibility](./accessibility.md): How Video.js approaches accessibility, and what you should consider if you're deeply customizing your player
|
|
49
|
-
- [Media sources](./media-sources.md): Set what a media
|
|
49
|
+
- [Media sources](./media-sources.md): Set what a media component plays and how its engine plays it with the structured source property
|
|
50
50
|
|
|
51
51
|
## Playback
|
|
52
52
|
|
|
@@ -73,6 +73,7 @@ Guides for one player capability each: the recommended setup, how it works, brow
|
|
|
73
73
|
|
|
74
74
|
Guides for moving an existing player integration to Video.js v10, one per player you might be coming from.
|
|
75
75
|
|
|
76
|
+
- [Migrate to Video.js v10](./migrate.md): Understand how Video.js v10 differs from the players it brings together, and choose the migration guide for the player you use today.
|
|
76
77
|
- [Migrate from Video.js 8](./migrate-from-video-js-8.md): Move a Video.js 8 integration to v10, mapping the options object, techs, plugins, and player API onto composed components
|
|
77
78
|
- [Migrate from Mux Player](./migrate-from-mux-player.md): Move a Mux Player embed to Video.js v10 using a player, media component, skin, and analytics extension
|
|
78
79
|
- [Migrate from Plyr](./migrate-from-plyr.md): Move an existing Plyr integration to Video.js v10, mapping Plyr options and its instance API onto components and player state
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Media sources
|
|
2
2
|
|
|
3
|
-
Set what a media
|
|
3
|
+
Set what a media component plays and how its engine plays it with the structured source property
|
|
4
4
|
|
|
5
|
-
Every media
|
|
5
|
+
Every media component takes a `src`. Elements that drive a playback engine also take `source`, a structured object that carries the URL alongside everything else about that source:
|
|
6
6
|
|
|
7
7
|
```ts
|
|
8
8
|
const video = document.querySelector('hlsjs-video');
|
|
@@ -91,6 +91,7 @@ Engine options live under `source.engine`, **namespaced by engine**. Each key th
|
|
|
91
91
|
| `engine.spotify` | [`<spotify-audio>`](../reference/components/spotify-audio.md) | [Spotify embed options](https://developer.spotify.com/documentation/embeds) |
|
|
92
92
|
| `engine.tiktok` | [`<tiktok-video>`](../reference/components/tiktok-video.md) | [TikTok player parameters](https://developers.tiktok.com/doc/embed-player) |
|
|
93
93
|
| `engine.twitch` | [`<twitch-video>`](../reference/components/twitch-video.md) | [Twitch embed parameters](https://dev.twitch.tv/docs/embed/video-and-clips/) |
|
|
94
|
+
| `engine.playerJs` | [`<playerjs-video>`](../reference/components/playerjs-video.md) | URL parameters for whichever service serves the embed |
|
|
94
95
|
|
|
95
96
|
Naming the engine rather than using one generic key matters where an element has more than one to choose from. `<hlsjs-video>` plays through hls.js or through the browser depending on the platform and `preferPlayback`, and only one of them runs — so a single source can describe both paths without either engine reading the other’s options.
|
|
96
97
|
|
|
@@ -46,14 +46,14 @@ Before loading Video.js HTML, remove every Media Chrome import and CDN script fr
|
|
|
46
46
|
For a page without a bundler, load the CDN video preset. It registers the player, the UI elements and icons used in the controller example below, and the `<media-i18n>` element:
|
|
47
47
|
|
|
48
48
|
```html
|
|
49
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
49
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/video.js"></script>
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
Some elements in the mapping table below need separate bundles. If you use any of these elements, also load its bundle:
|
|
53
53
|
|
|
54
|
-
- `media-seek-button`: `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
55
|
-
- `media-playback-rate-button`: `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
56
|
-
- `media-thumbnail`: `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
54
|
+
- `media-seek-button`: `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/ui/seek-button.js`
|
|
55
|
+
- `media-playback-rate-button`: `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/ui/playback-rate-button.js`
|
|
56
|
+
- `media-thumbnail`: `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.1.0/ui/thumbnail.js`
|
|
57
57
|
|
|
58
58
|
Load each with `<script type="module" src="…"></script>`. See [CDN](./cdn.md) for individual component bundles.
|
|
59
59
|
|