@videojs/html 10.1.0 → 10.2.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/dist/default/define/audio/compat-skin.css +44 -60
- package/dist/default/define/audio/compat-skin2.js +1 -1
- package/dist/default/define/audio/neutral-skin.css +2 -11
- package/dist/default/define/audio/neutral-skin2.js +1 -1
- package/dist/default/define/audio/scaffold-skin.css +35 -52
- package/dist/default/define/audio/scaffold-skin2.js +1 -1
- package/dist/default/define/audio/skin.css +0 -1
- package/dist/default/define/audio/skin2.js +1 -1
- package/dist/default/define/live-audio/compat-skin.css +44 -60
- package/dist/default/define/live-audio/compat-skin2.js +1 -1
- package/dist/default/define/live-audio/neutral-skin.css +0 -1
- package/dist/default/define/live-audio/neutral-skin2.js +1 -1
- package/dist/default/define/live-audio/scaffold-skin.css +35 -52
- package/dist/default/define/live-audio/scaffold-skin2.js +1 -1
- package/dist/default/define/live-audio/skin.css +0 -1
- package/dist/default/define/live-audio/skin2.js +1 -1
- package/dist/default/define/live-video/compat-skin.css +8 -8
- package/dist/default/define/live-video/compat-skin2.js +1 -1
- package/dist/default/define/live-video/scaffold-skin.css +12 -13
- package/dist/default/define/live-video/scaffold-skin2.js +1 -1
- package/dist/default/define/video/compat-skin.css +8 -8
- package/dist/default/define/video/compat-skin2.js +1 -1
- package/dist/default/define/video/neutral-skin.css +2 -10
- package/dist/default/define/video/neutral-skin2.js +1 -1
- package/dist/default/define/video/scaffold-skin.css +12 -13
- package/dist/default/define/video/scaffold-skin2.js +1 -1
- package/dist/default/extensions/mux-data/extension.js +1 -1
- package/dist/default/internal/skins/compat-audio/register.js +0 -10
- package/dist/default/internal/skins/compat-audio/skin.css +44 -60
- package/dist/default/internal/skins/compat-audio/template.js +14 -38
- package/dist/default/internal/skins/compat-live-audio/register.js +0 -10
- package/dist/default/internal/skins/compat-live-audio/skin.css +44 -60
- package/dist/default/internal/skins/compat-live-audio/template.js +2 -26
- package/dist/default/internal/skins/compat-live-video/skin.css +8 -8
- package/dist/default/internal/skins/compat-video/skin.css +8 -8
- package/dist/default/internal/skins/default-audio/skin.css +0 -1
- package/dist/default/internal/skins/default-live-audio/skin.css +0 -1
- package/dist/default/internal/skins/neutral-audio/skin.css +2 -11
- package/dist/default/internal/skins/neutral-audio/template.js +1 -1
- package/dist/default/internal/skins/neutral-live-audio/skin.css +0 -1
- package/dist/default/internal/skins/neutral-video/skin.css +2 -10
- package/dist/default/internal/skins/neutral-video/template.js +1 -1
- package/dist/default/internal/skins/scaffold-audio/register.js +0 -10
- package/dist/default/internal/skins/scaffold-audio/skin.css +35 -52
- package/dist/default/internal/skins/scaffold-audio/template.js +14 -38
- package/dist/default/internal/skins/scaffold-live-audio/register.js +0 -10
- package/dist/default/internal/skins/scaffold-live-audio/skin.css +35 -52
- package/dist/default/internal/skins/scaffold-live-audio/template.js +2 -26
- package/dist/default/internal/skins/scaffold-live-video/skin.css +12 -13
- package/dist/default/internal/skins/scaffold-video/skin.css +12 -13
- package/dist/default/media/hls-audio/adapter.js +1 -1
- package/dist/default/media/hls-background-video/adapter.js +1 -1
- package/dist/default/media/hls-video/adapter.js +1 -1
- package/dist/default/ui/slider/element.js +3 -1
- package/dist/default/ui/time-slider/element.js +19 -7
- package/dist/default/ui/volume-slider/element.js +3 -1
- package/dist/default/version.js +1 -1
- package/dist/dev/define/audio/compat-skin.css +44 -60
- 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-skin.css +2 -11
- package/dist/dev/define/audio/neutral-skin2.js +1 -1
- package/dist/dev/define/audio/neutral-skin2.js.map +1 -1
- package/dist/dev/define/audio/scaffold-skin.css +35 -52
- package/dist/dev/define/audio/scaffold-skin2.js +1 -1
- package/dist/dev/define/audio/scaffold-skin2.js.map +1 -1
- package/dist/dev/define/audio/skin.css +0 -1
- package/dist/dev/define/audio/skin2.js +1 -1
- package/dist/dev/define/audio/skin2.js.map +1 -1
- package/dist/dev/define/live-audio/compat-skin.css +44 -60
- 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-skin.css +0 -1
- package/dist/dev/define/live-audio/neutral-skin2.js +1 -1
- package/dist/dev/define/live-audio/neutral-skin2.js.map +1 -1
- package/dist/dev/define/live-audio/scaffold-skin.css +35 -52
- package/dist/dev/define/live-audio/scaffold-skin2.js +1 -1
- package/dist/dev/define/live-audio/scaffold-skin2.js.map +1 -1
- package/dist/dev/define/live-audio/skin.css +0 -1
- 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 +8 -8
- 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-skin2.js.map +1 -1
- package/dist/dev/define/live-video/scaffold-skin.css +12 -13
- package/dist/dev/define/live-video/scaffold-skin2.js +1 -1
- package/dist/dev/define/live-video/scaffold-skin2.js.map +1 -1
- package/dist/dev/define/live-video/skin2.js.map +1 -1
- package/dist/dev/define/video/compat-skin.css +8 -8
- 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 +2 -10
- 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 +12 -13
- package/dist/dev/define/video/scaffold-skin2.js +1 -1
- package/dist/dev/define/video/scaffold-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/internal/skins/compat-audio/register.d.ts +3 -5
- package/dist/dev/internal/skins/compat-audio/register.js +0 -10
- package/dist/dev/internal/skins/compat-audio/register.js.map +1 -1
- package/dist/dev/internal/skins/compat-audio/skin.css +44 -60
- package/dist/dev/internal/skins/compat-audio/template.js +14 -38
- package/dist/dev/internal/skins/compat-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/compat-live-audio/register.d.ts +0 -2
- package/dist/dev/internal/skins/compat-live-audio/register.js +0 -10
- package/dist/dev/internal/skins/compat-live-audio/register.js.map +1 -1
- package/dist/dev/internal/skins/compat-live-audio/skin.css +44 -60
- package/dist/dev/internal/skins/compat-live-audio/template.js +2 -26
- package/dist/dev/internal/skins/compat-live-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/compat-live-video/register.d.ts +2 -2
- package/dist/dev/internal/skins/compat-live-video/skin.css +8 -8
- package/dist/dev/internal/skins/compat-video/register.d.ts +5 -5
- package/dist/dev/internal/skins/compat-video/skin.css +8 -8
- package/dist/dev/internal/skins/default-audio/register.d.ts +1 -1
- package/dist/dev/internal/skins/default-audio/skin.css +0 -1
- package/dist/dev/internal/skins/default-live-audio/skin.css +0 -1
- package/dist/dev/internal/skins/default-live-video/register.d.ts +2 -2
- package/dist/dev/internal/skins/default-video/register.d.ts +3 -3
- package/dist/dev/internal/skins/neutral-audio/register.d.ts +3 -3
- package/dist/dev/internal/skins/neutral-audio/skin.css +2 -11
- package/dist/dev/internal/skins/neutral-audio/template.js +1 -1
- package/dist/dev/internal/skins/neutral-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/neutral-live-audio/skin.css +0 -1
- package/dist/dev/internal/skins/neutral-live-video/register.d.ts +2 -2
- package/dist/dev/internal/skins/neutral-video/register.d.ts +5 -5
- package/dist/dev/internal/skins/neutral-video/skin.css +2 -10
- package/dist/dev/internal/skins/neutral-video/template.js +1 -1
- package/dist/dev/internal/skins/neutral-video/template.js.map +1 -1
- package/dist/dev/internal/skins/scaffold-audio/register.d.ts +3 -5
- package/dist/dev/internal/skins/scaffold-audio/register.js +0 -10
- package/dist/dev/internal/skins/scaffold-audio/register.js.map +1 -1
- package/dist/dev/internal/skins/scaffold-audio/skin.css +35 -52
- package/dist/dev/internal/skins/scaffold-audio/template.js +14 -38
- package/dist/dev/internal/skins/scaffold-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/scaffold-live-audio/register.d.ts +0 -2
- package/dist/dev/internal/skins/scaffold-live-audio/register.js +0 -10
- package/dist/dev/internal/skins/scaffold-live-audio/register.js.map +1 -1
- package/dist/dev/internal/skins/scaffold-live-audio/skin.css +35 -52
- package/dist/dev/internal/skins/scaffold-live-audio/template.js +2 -26
- package/dist/dev/internal/skins/scaffold-live-audio/template.js.map +1 -1
- package/dist/dev/internal/skins/scaffold-live-video/register.d.ts +2 -2
- package/dist/dev/internal/skins/scaffold-live-video/skin.css +12 -13
- package/dist/dev/internal/skins/scaffold-video/register.d.ts +5 -5
- package/dist/dev/internal/skins/scaffold-video/skin.css +12 -13
- package/dist/dev/media/hls-audio/adapter.d.ts +1 -1
- package/dist/dev/media/hls-audio/adapter.js +1 -1
- package/dist/dev/media/hls-audio/adapter.js.map +1 -1
- package/dist/dev/media/hls-background-video/adapter.d.ts +1 -1
- package/dist/dev/media/hls-background-video/adapter.js +1 -1
- package/dist/dev/media/hls-background-video/adapter.js.map +1 -1
- package/dist/dev/media/hls-video/adapter.d.ts +1 -1
- package/dist/dev/media/hls-video/adapter.js +1 -1
- package/dist/dev/media/hls-video/adapter.js.map +1 -1
- package/dist/dev/ui/slider/element.js +3 -1
- package/dist/dev/ui/slider/element.js.map +1 -1
- package/dist/dev/ui/time-slider/element.js +19 -7
- package/dist/dev/ui/time-slider/element.js.map +1 -1
- package/dist/dev/ui/volume-slider/element.js +3 -1
- package/dist/dev/ui/volume-slider/element.js.map +1 -1
- package/dist/dev/version.js +1 -1
- package/docs/README.md +1 -1
- package/docs/guides/browser-support.md +11 -11
- package/docs/guides/build-your-own-skin.md +381 -0
- package/docs/guides/cdn.md +9 -9
- package/docs/guides/customize-skins.md +2 -1
- package/docs/guides/installation-cdn.md +2 -2
- package/docs/guides/installation-shadcn.md +1 -1
- package/docs/guides/installation-svelte.md +2 -2
- package/docs/guides/installation-vue.md +2 -2
- package/docs/guides/installation.md +2 -2
- package/docs/guides/internationalization.md +5 -5
- package/docs/guides/llms.txt +2 -1
- package/docs/guides/migrate-from-media-chrome.md +4 -4
- package/docs/guides/migrate-from-mux-player.md +6 -6
- package/docs/guides/migrate-from-plyr.md +7 -7
- package/docs/guides/migrate-from-video-js-8.md +7 -7
- package/docs/guides/migrate-from-vidstack.md +3 -3
- package/docs/guides/self-hosting.md +9 -6
- package/docs/guides/skins.md +1 -0
- package/docs/llms.txt +3 -2
- package/docs/reference/api/llms.txt +1 -1
- package/docs/reference/api/preset-audio.md +1 -1
- package/docs/reference/api/preset-background.md +1 -1
- package/docs/reference/api/preset-live-audio.md +1 -1
- package/docs/reference/api/preset-live-video.md +1 -1
- package/docs/reference/api/preset-video.md +1 -1
- package/docs/reference/components/audio-neutral-skin.md +1 -1
- package/docs/reference/components/audio-scaffold-skin.md +1 -1
- package/docs/reference/components/audio-skin.md +1 -1
- package/docs/reference/components/background-video-skin.md +1 -1
- package/docs/reference/components/background-video.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 +2 -48
- package/docs/reference/components/hls-background-video.md +1 -1
- package/docs/reference/components/hls-video.md +2 -66
- package/docs/reference/components/hlsjs-video.md +1 -1
- package/docs/reference/components/live-audio-neutral-skin.md +1 -1
- package/docs/reference/components/live-audio-scaffold-skin.md +1 -1
- package/docs/reference/components/live-audio-skin.md +1 -1
- package/docs/reference/components/live-video-neutral-skin.md +1 -1
- package/docs/reference/components/live-video-scaffold-skin.md +1 -1
- package/docs/reference/components/live-video-skin.md +1 -1
- package/docs/reference/components/llms.txt +1 -1
- package/docs/reference/components/mux-audio.md +1 -1
- package/docs/reference/components/mux-background-video.md +1 -1
- package/docs/reference/components/mux-data.md +4 -2
- package/docs/reference/components/mux-video.md +1 -1
- package/docs/reference/components/native-hls-video.md +1 -1
- package/docs/reference/components/playerjs-video.md +1 -1
- package/docs/reference/components/shaka-video.md +1 -1
- package/docs/reference/components/slider.md +2 -0
- package/docs/reference/components/spotify-audio.md +1 -1
- package/docs/reference/components/tiktok-video.md +1 -1
- package/docs/reference/components/time-slider.md +7 -5
- package/docs/reference/components/twitch-video.md +1 -1
- package/docs/reference/components/video-neutral-skin.md +1 -1
- package/docs/reference/components/video-scaffold-skin.md +1 -1
- package/docs/reference/components/video-skin.md +1 -1
- package/docs/reference/components/vimeo-video.md +1 -1
- package/docs/reference/components/volume-slider.md +8 -6
- package/docs/reference/components/wistia-video.md +1 -1
- package/docs/reference/components/youtube-video.md +1 -1
- package/package.json +42 -43
|
@@ -72,7 +72,7 @@ The Neutral skin is the closest built-in starting point for this migration.
|
|
|
72
72
|
For an HTML page without a bundler, load the CDN preset:
|
|
73
73
|
|
|
74
74
|
```html
|
|
75
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
75
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/video-neutral.js"></script>
|
|
76
76
|
|
|
77
77
|
<video-player poster="/path/to/poster.jpg">
|
|
78
78
|
<video-neutral-skin style="aspect-ratio: 16 / 9">
|
|
@@ -119,7 +119,7 @@ The SPF [HLS video](../reference/components/hls-video.md) component is an altern
|
|
|
119
119
|
Replace `<video>` with `<hlsjs-video>`. If you’re using the CDN, add an additional script:
|
|
120
120
|
|
|
121
121
|
```html
|
|
122
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
122
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/hlsjs-video.js"></script>
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
For a bundler installation, install the adapter package and add the media import:
|
|
@@ -141,7 +141,7 @@ Use the DASH media component for an unprotected DASH source. For DRM-protected D
|
|
|
141
141
|
Replace `<video>` with `<dash-video>`. If you’re using the CDN, add an additional script:
|
|
142
142
|
|
|
143
143
|
```html
|
|
144
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
144
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/dash-video.js"></script>
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
For a package-manager installation, install the DASH adapter package and add the media import:
|
|
@@ -163,7 +163,7 @@ Use the Vimeo media component for your existing Vimeo source.
|
|
|
163
163
|
Replace `<video>` with `<vimeo-video>`. For a CDN installation, add the media script:
|
|
164
164
|
|
|
165
165
|
```html
|
|
166
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
166
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/vimeo-video.js"></script>
|
|
167
167
|
```
|
|
168
168
|
|
|
169
169
|
For a bundler installation, install the adapter package and add the module import:
|
|
@@ -185,7 +185,7 @@ Use the YouTube media component for your existing YouTube source.
|
|
|
185
185
|
Replace `<video>` with `<youtube-video>`. For a CDN installation, add the media script:
|
|
186
186
|
|
|
187
187
|
```html
|
|
188
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
188
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/youtube-video.js"></script>
|
|
189
189
|
```
|
|
190
190
|
|
|
191
191
|
For a bundler installation, install the adapter package and add the module import:
|
|
@@ -216,7 +216,7 @@ To select a locale, wrap the player in `<media-i18n>` and set `lang` to your loc
|
|
|
216
216
|
|
|
217
217
|
```html
|
|
218
218
|
<script type="module">
|
|
219
|
-
import { registerI18n } from 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
219
|
+
import { registerI18n } from 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/i18n.js';
|
|
220
220
|
|
|
221
221
|
registerI18n('en', {
|
|
222
222
|
buttons: {
|
|
@@ -229,7 +229,7 @@ To select a locale, wrap the player in `<media-i18n>` and set `lang` to your loc
|
|
|
229
229
|
});
|
|
230
230
|
</script>
|
|
231
231
|
|
|
232
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
232
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/video-neutral.js"></script>
|
|
233
233
|
|
|
234
234
|
<video-player>
|
|
235
235
|
<video-neutral-skin>
|
|
@@ -4,7 +4,7 @@ Move a Video.js 8 integration to v10, mapping the options object, techs, plugins
|
|
|
4
4
|
|
|
5
5
|
Move your Video.js 8 setup to v10 by replacing `videojs()` with a player, media component, and skin. This guide maps your options, techs, plugins, and imperative calls to those pieces.
|
|
6
6
|
|
|
7
|
-
Video.js 10 ships as scoped `@videojs/*` packages. The `video.js` npm package
|
|
7
|
+
Video.js 10 ships as scoped `@videojs/*` packages. The `video.js` npm package contains no player; install `video.js@8` to stay on Video.js 8, whose [repository](https://github.com/videojs/videojs-v8) and [docs](https://legacy.videojs.org) remain available.
|
|
8
8
|
|
|
9
9
|
## Before you migrate
|
|
10
10
|
|
|
@@ -65,7 +65,7 @@ Here’s a standard v8 setup: one file, captions, a poster, and the default skin
|
|
|
65
65
|
Load the video [preset](./presets.md) from the CDN and put your media inside its skin:
|
|
66
66
|
|
|
67
67
|
```html
|
|
68
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
68
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/video.js"></script>
|
|
69
69
|
|
|
70
70
|
<video-player poster="/poster.jpg">
|
|
71
71
|
<video-skin style="aspect-ratio: 16 / 9">
|
|
@@ -230,7 +230,7 @@ SPF and native HLS are included as dependencies of the HTML and React packages.
|
|
|
230
230
|
For hls.js video from the CDN:
|
|
231
231
|
|
|
232
232
|
```html
|
|
233
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
233
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/hlsjs-video.js"></script>
|
|
234
234
|
```
|
|
235
235
|
|
|
236
236
|
With a package manager, install the adapter and import its HTML registration:
|
|
@@ -323,7 +323,7 @@ Move license URLs from v8’s `keySystems` configuration to `source.drm`, keyed
|
|
|
323
323
|
|
|
324
324
|
The examples configure Widevine. Replace both URL placeholders and add every key system your supported browsers need.
|
|
325
325
|
|
|
326
|
-
With a bundler, install `@videojs/shaka-video` and import `@videojs/html/media/shaka-video`. From the CDN, load `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
326
|
+
With a bundler, install `@videojs/shaka-video` and import `@videojs/html/media/shaka-video`. From the CDN, load `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/shaka-video.js` in a `<script type="module">` tag. Then replace the media component inside your player’s skin with:
|
|
327
327
|
|
|
328
328
|
```html
|
|
329
329
|
<shaka-video id="protected-media"></shaka-video>
|
|
@@ -446,7 +446,7 @@ For a CDN page, register string overrides in a module script:
|
|
|
446
446
|
|
|
447
447
|
```html
|
|
448
448
|
<script type="module">
|
|
449
|
-
import { registerI18n } from 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
449
|
+
import { registerI18n } from 'https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/i18n.js';
|
|
450
450
|
|
|
451
451
|
registerI18n('en', {
|
|
452
452
|
buttons: { play: 'Start video', pause: 'Pause video' },
|
|
@@ -466,8 +466,8 @@ Replace `liveui` or `audioOnlyMode` with the matching live or audio [preset](./p
|
|
|
466
466
|
Load the live preset and the hls.js media component:
|
|
467
467
|
|
|
468
468
|
```html
|
|
469
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
470
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
469
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/live-video.js"></script>
|
|
470
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/hlsjs-video.js"></script>
|
|
471
471
|
|
|
472
472
|
<live-video-player>
|
|
473
473
|
<live-video-skin>
|
|
@@ -154,7 +154,7 @@ What changed:
|
|
|
154
154
|
Load the bundle as a module script. From the CDN, the video preset is one script:
|
|
155
155
|
|
|
156
156
|
```html
|
|
157
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
157
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/video.js"></script>
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
Pin every Video.js CDN URL on a page to the same version; see [CDN](./cdn.md).
|
|
@@ -233,7 +233,7 @@ Vidstack’s `<media-provider>` read `src`, guessed a type from the extension or
|
|
|
233
233
|
| Vimeo | [`<vimeo-video>`](../reference/components/vimeo-video.md) | `@videojs/vimeo-video` |
|
|
234
234
|
| Remotion | No equivalent ([#3053](https://github.com/videojs/v10/issues/3053)) | |
|
|
235
235
|
|
|
236
|
-
Register each media component with `import '@videojs/html/media/<name>'`, or load `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
236
|
+
Register each media component with `import '@videojs/html/media/<name>'`, or load `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/<name>.js` from the CDN, where the engine is already bundled.
|
|
237
237
|
|
|
238
238
|
### HLS and DASH
|
|
239
239
|
|
|
@@ -755,7 +755,7 @@ import '@videojs/html/media/hlsjs-video';
|
|
|
755
755
|
```
|
|
756
756
|
|
|
757
757
|
- **DVR comes from the stream.** `live:dvr` becomes `targetLiveWindow === Infinity`, which the media reports for event playlists. There’s no way to force DVR on a sliding window. Add a time slider in skin source to let viewers seek.
|
|
758
|
-
- **The live edge moved to the live button.** `liveEdge`, `userBehindLiveEdge`, and `seekToLiveEdge()` become the live button’s state and behavior. It counts playback as live within 5 seconds of the stream’s live edge start, which already sits behind the seekable end by the
|
|
758
|
+
- **The live edge moved to the live button.** `liveEdge`, `userBehindLiveEdge`, and `seekToLiveEdge()` become the live button’s state and behavior. It counts playback as live within 5 seconds of the stream’s live edge start, which already sits behind the seekable end by the media’s live latency. The hls.js media uses the hls.js target latency, which `source.engine.hlsJs` can change; the other media derive it from the stream. Vidstack counted the last `liveEdgeTolerance` seconds before the seekable end, 10 by default and configurable ([#1730](https://github.com/videojs/v10/issues/1730)).
|
|
759
759
|
- **`streamType` needs a feature.** No preset includes `streamTypeFeature`; add it to a custom player when one player switches between live and on-demand UI.
|
|
760
760
|
- **Live presets are narrower.** They leave out playback rate, quality, and audio-track state. Build a player from a feature list to add them back.
|
|
761
761
|
|
|
@@ -43,7 +43,7 @@ Bundle a single file when you already build your front end. Download the release
|
|
|
43
43
|
Unpack it into whatever your server treats as static files:
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
VIDEOJS_VERSION=10.
|
|
46
|
+
VIDEOJS_VERSION=10.2.0
|
|
47
47
|
curl -fLO "https://github.com/videojs/video.js/releases/download/@videojs/cdn@${VIDEOJS_VERSION}/videojs-cdn-${VIDEOJS_VERSION}.zip"
|
|
48
48
|
unzip "videojs-cdn-${VIDEOJS_VERSION}.zip" -d public/
|
|
49
49
|
```
|
|
@@ -51,7 +51,7 @@ unzip "videojs-cdn-${VIDEOJS_VERSION}.zip" -d public/
|
|
|
51
51
|
Then point a script tag at the player you want:
|
|
52
52
|
|
|
53
53
|
```html
|
|
54
|
-
<script type="module" src="/videojs-cdn-10.
|
|
54
|
+
<script type="module" src="/videojs-cdn-10.2.0/video.js"></script>
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
The archive holds the same production bundles the CDN serves, minus sourcemaps and development builds. Every path inside it is relative, so it runs from any origin with no outbound requests. `SHA256SUMS` on the release verifies the download.
|
|
@@ -67,22 +67,25 @@ For Composer-based projects such as Drupal, declare the archive as a package:
|
|
|
67
67
|
"type": "package",
|
|
68
68
|
"package": {
|
|
69
69
|
"name": "videojs/cdn",
|
|
70
|
-
"version": "10.
|
|
70
|
+
"version": "10.2.0",
|
|
71
71
|
"type": "drupal-library",
|
|
72
|
+
"extra": {
|
|
73
|
+
"installer-name": "videojs-cdn"
|
|
74
|
+
},
|
|
72
75
|
"dist": {
|
|
73
76
|
"type": "zip",
|
|
74
|
-
"url": "https://github.com/videojs/video.js/releases/download/@videojs/cdn@10.
|
|
77
|
+
"url": "https://github.com/videojs/video.js/releases/download/@videojs/cdn@10.2.0/videojs-cdn-10.2.0.zip"
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
80
|
}
|
|
78
81
|
],
|
|
79
82
|
"require": {
|
|
80
|
-
"videojs/cdn": "10.
|
|
83
|
+
"videojs/cdn": "10.2.0"
|
|
81
84
|
}
|
|
82
85
|
}
|
|
83
86
|
```
|
|
84
87
|
|
|
85
|
-
Composer strips the archive’s top-level directory, so the player lands
|
|
88
|
+
Composer strips the archive’s top-level directory, and `installer-name` sets the install directory, so the player lands in `libraries/videojs-cdn/`.
|
|
86
89
|
|
|
87
90
|
### Mirror the prebuilt CDN files
|
|
88
91
|
|
package/docs/guides/skins.md
CHANGED
|
@@ -51,6 +51,7 @@ The skin source contains the complete interface. You can add, remove, rearrange,
|
|
|
51
51
|
|
|
52
52
|
You can also build an interface without starting from a skin. In that model, you choose and arrange individual [UI components](./ui-components.md) around the media. This takes more work, but it avoids inheriting a skin’s layout and interactions.
|
|
53
53
|
|
|
54
|
+
- [Build your own skin](./build-your-own-skin.md)
|
|
54
55
|
- [Build your own component](./build-your-own-component.md)
|
|
55
56
|
|
|
56
57
|
## Skins, features, and presets
|
package/docs/llms.txt
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Video.js v10 — HTML Documentation
|
|
2
2
|
|
|
3
|
-
> Bundled with `@videojs/html` v10.
|
|
3
|
+
> Bundled with `@videojs/html` v10.2.0. Links are relative paths to files in this directory.
|
|
4
4
|
|
|
5
5
|
> Install the [Video.js skill](https://github.com/videojs/skills) to help AI coding agents find version-matched pages from this index.
|
|
6
6
|
|
|
7
|
-
> The `video.js` package on npm
|
|
7
|
+
> The `video.js` package on npm contains no player; install `video.js@8` to stay on Video.js 8. Video.js 10 ships as `@videojs/html`; to move existing Video.js 8 code, read https://videojs.org/docs/framework/html/guides/migrate-from-video-js-8.md
|
|
8
8
|
|
|
9
9
|
> Vidstack Player is in security-only maintenance. To move existing `vidstack` code, read https://videojs.org/docs/framework/html/guides/migrate-from-vidstack.md
|
|
10
10
|
|
|
@@ -28,6 +28,7 @@ Install Video.js, customize a skin, understand its main pieces, check browser an
|
|
|
28
28
|
- [Build your own UI component](./guides/build-your-own-component.md): Create custom player controls that read state, dispatch actions, and stay accessible.
|
|
29
29
|
- [Architecture](./guides/architecture.md): How Video.js players are structured — state, UI, media, and extensions
|
|
30
30
|
- [Customize skins](./guides/customize-skins.md): Style a packaged Video.js skin or add its source to change controls, layout, styles, and interactions
|
|
31
|
+
- [Build your own skin](./guides/build-your-own-skin.md): Create a skin project, preview it locally, and compose your own player interface from Video.js UI components
|
|
31
32
|
- [Why Video.js?](./guides/why-videojs.md): The open-source video player for React and HTML. Lightweight, accessible components built for performance and streaming.
|
|
32
33
|
- [Browser support](./guides/browser-support.md): Browsers and rendering environments supported by Video.js 10, and how the packaged skins reach them
|
|
33
34
|
- [Build with AI](./guides/build-with-ai.md): Install the Video.js skill and give AI coding agents version-matched docs for building and migrating players
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Video.js v10 — HTML API
|
|
2
2
|
|
|
3
|
-
> API reference for the player factory, presets, store controllers, features, translation tools, and utilities. Bundled with `@videojs/html` v10.
|
|
3
|
+
> API reference for the player factory, presets, store controllers, features, translation tools, and utilities. Bundled with `@videojs/html` v10.2.0. Links are relative paths to files in this directory.
|
|
4
4
|
|
|
5
5
|
## Player
|
|
6
6
|
|
|
@@ -14,7 +14,7 @@ import '@videojs/html/audio/skin';
|
|
|
14
14
|
Import `@videojs/html/audio/neutral-skin` instead for the neutral skin. Or load one [CDN](../../guides/cdn.md) bundle that registers the player and a skin together:
|
|
15
15
|
|
|
16
16
|
```html
|
|
17
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
17
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/audio.js"></script>
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
`audio-neutral.js` registers the neutral skin instead, and `audio-player.js` registers `<audio-player>` alone.
|
|
@@ -15,7 +15,7 @@ import '@videojs/html/background/video';
|
|
|
15
15
|
Or load the [CDN](../../guides/cdn.md) bundle that registers all three:
|
|
16
16
|
|
|
17
17
|
```html
|
|
18
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
18
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/background.js"></script>
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
Unlike the other presets, the background preset has one bundle and no player-only bundle.
|
|
@@ -14,7 +14,7 @@ import '@videojs/html/live-audio/skin';
|
|
|
14
14
|
Import `@videojs/html/live-audio/neutral-skin` instead for the neutral skin. Or load one [CDN](../../guides/cdn.md) bundle that registers the player and a skin together:
|
|
15
15
|
|
|
16
16
|
```html
|
|
17
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
17
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/live-audio.js"></script>
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
`live-audio-neutral.js` registers the neutral skin instead, and `live-audio-player.js` registers `<live-audio-player>` alone.
|
|
@@ -14,7 +14,7 @@ import '@videojs/html/live-video/skin';
|
|
|
14
14
|
Import `@videojs/html/live-video/neutral-skin` instead for the neutral skin. Or load one [CDN](../../guides/cdn.md) bundle that registers the player and a skin together:
|
|
15
15
|
|
|
16
16
|
```html
|
|
17
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
17
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/live-video.js"></script>
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
`live-video-neutral.js` registers the neutral skin instead, and `live-video-player.js` registers `<live-video-player>` alone.
|
|
@@ -14,7 +14,7 @@ import '@videojs/html/video/skin';
|
|
|
14
14
|
Import `@videojs/html/video/neutral-skin` instead for the neutral skin. Or load one [CDN](../../guides/cdn.md) bundle that registers the player and a skin together:
|
|
15
15
|
|
|
16
16
|
```html
|
|
17
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
17
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/video.js"></script>
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
`video-neutral.js` registers the neutral skin instead, and `video-player.js` registers `<video-player>` alone.
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/audio/neutral-skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/audio-neutral.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Anatomy
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/audio/scaffold-skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/audio-scaffold.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Usage
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/audio/skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/audio.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Anatomy
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/background/skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/background.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Anatomy
|
|
@@ -17,7 +17,7 @@ import '@videojs/html/media/background-video';
|
|
|
17
17
|
Or load it from the [CDN](../../guides/cdn.md):
|
|
18
18
|
|
|
19
19
|
```html
|
|
20
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
20
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/background-video.js"></script>
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Examples
|
|
@@ -17,7 +17,7 @@ import '@videojs/html/media/cloudflare-video';
|
|
|
17
17
|
Or load it from the [CDN](../../guides/cdn.md):
|
|
18
18
|
|
|
19
19
|
```html
|
|
20
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
20
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/cloudflare-video.js"></script>
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Load a source
|
|
@@ -21,7 +21,7 @@ import '@videojs/html/media/dash-video';
|
|
|
21
21
|
Or load it from the [CDN](../../guides/cdn.md):
|
|
22
22
|
|
|
23
23
|
```html
|
|
24
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
24
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/dash-video.js"></script>
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
## Examples
|
|
@@ -17,7 +17,7 @@ import '@videojs/html/extensions/google-cast';
|
|
|
17
17
|
Or load it from the [CDN](../../guides/cdn.md):
|
|
18
18
|
|
|
19
19
|
```html
|
|
20
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
20
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/extensions/google-cast.js"></script>
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Anatomy
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/media/hls-audio';
|
|
|
13
13
|
Or load it from the [CDN](../../guides/cdn.md):
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/hls-audio.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Examples
|
|
@@ -39,50 +39,4 @@ Or load it from the [CDN](../../guides/cdn.md):
|
|
|
39
39
|
|
|
40
40
|
```ts
|
|
41
41
|
import '@videojs/html/media/hls-audio';
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## API Reference
|
|
45
|
-
|
|
46
|
-
### Attributes
|
|
47
|
-
|
|
48
|
-
Forwards these standard media attributes to the internal `<audio>`. See the [MDN media element reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio): `autopictureinpicture`, `autoplay`, `controls`, `controlslist`, `crossorigin`, `disablepictureinpicture`, `disableremoteplayback`, `loading`, `loop`, `muted`, `playsinline`, `poster`, `preload`, `src`.
|
|
49
|
-
|
|
50
|
-
These Video.js-specific attributes configure media behavior:
|
|
51
|
-
|
|
52
|
-
| Attribute | Type | Default | Description |
|
|
53
|
-
| --- | --- | --- | --- |
|
|
54
|
-
| `stream-type` | `MediaStreamType` | — | Current stream type (`'on-demand'`, `'live'`, or `'unknown'`). Defaults to `'unknown'`; detecting hosts update it automatically, and consumers can set it to override detection. |
|
|
55
|
-
|
|
56
|
-
### Properties
|
|
57
|
-
|
|
58
|
-
| Property | Type | Default | Description |
|
|
59
|
-
| --- | --- | --- | --- |
|
|
60
|
-
| `alternativeMediaSuggestion` | `string \| undefined` | — | Read-only. A complete sentence naming the Media to reach for when this one can't play a source. Appended to the copy this adapter logs. Empty here, and overridden the same way as on the video adapter — see its note. `hls-audio` has no better-equipped sibling of its own; the Mux audio Media built on this engine does, and points at the hls.js-backed one. |
|
|
61
|
-
| `contentData` | `MediaContentData \| undefined` | — | Read-only. |
|
|
62
|
-
| `crossOrigin` | `'anonymous' \| 'use-credentials' \| null` | `null` | |
|
|
63
|
-
| `disableRemotePlayback` | `boolean` | `false` | |
|
|
64
|
-
| `engine` | `{ state: { [K in keyof S]-?: Signal<S[K]> }; context: { [K in keyof C]-?: Signal<C[K]> }; destroy(): Promise<void> }` | — | Read-only. Underlying playback engine — the low-level SPF reactive composition that drives playback. An advanced escape hatch for direct engine access; normal playback is driven through this element's own properties and methods. |
|
|
65
|
-
| `error` | `{ code: number; message: string; data?: unknown } \| null` | — | Read-only. The current fatal error, or `null`. Only *fatal* conditions appear here — the engine reports non-fatal ones too, which stay in `engine.state.errors`. Resets per source. Fires `'error'` when set. |
|
|
66
|
-
| `liveEdgeStart` | `number` | — | Read-only. |
|
|
67
|
-
| `preload` | `'' \| 'none' \| 'metadata' \| 'auto'` | `''` | Preload type (`'none'` / `'metadata'` / `'auto'`). |
|
|
68
|
-
| `source` | `{ src?: string; type?: string; drm?: Partial<Record<string, DrmSystemConfig>> } \| null` | `null` | Structured source, the same shape the video flavor takes so one object serves either. `drm` is accepted and inert: this engine composes no EME. It is kept in the shape rather than removed so a source can be handed to both flavors — and because Mux encrypts video renditions and leaves audio clear, so a protected playback ID plays here regardless. |
|
|
69
|
-
| `src` | `string` | `''` | |
|
|
70
|
-
| `streamType` | `MediaStreamType` | — | Current stream type (`'on-demand'`, `'live'`, or `'unknown'`). Defaults to `'unknown'`; detecting hosts update it automatically, and consumers can set it to override detection. |
|
|
71
|
-
| `targetLiveWindow` | `number` | — | Read-only. |
|
|
72
|
-
|
|
73
|
-
Also exposes these properties from the native media API. See [HTMLAudioElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement) for details: `autoplay`, `buffered`, `controls`, `currentSrc`, `currentTime`, `defaultMuted`, `defaultPlaybackRate`, `duration`, `ended`, `loop`, `muted`, `paused`, `playbackRate`, `played`, `readyState`, `remote`, `seekable`, `seeking`, `textTracks`, `title`, `volume`.
|
|
74
|
-
|
|
75
|
-
### Methods
|
|
76
|
-
|
|
77
|
-
Supports these media methods. See [HTMLAudioElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLAudioElement) for details: `addTextTrack`, `canPlayType`, `load`, `pause`, `play`.
|
|
78
|
-
|
|
79
|
-
### Events
|
|
80
|
-
|
|
81
|
-
Re-dispatches these standard media events from the internal media element: `abort`, `addtrack`, `canplay`, `canplaythrough`, `change`, `contentdatachange`, `durationchange`, `emptied`, `ended`, `loadeddata`, `loadedmetadata`, `loadstart`, `pause`, `play`, `playing`, `progress`, `ratechange`, `removetrack`, `seeked`, `seeking`, `stalled`, `suspend`, `timeupdate`, `volumechange`, `waiting`.
|
|
82
|
-
|
|
83
|
-
Also emits these Video.js-specific events:
|
|
84
|
-
|
|
85
|
-
| Event | Description |
|
|
86
|
-
| --- | --- |
|
|
87
|
-
| `error` | Fired when a fatal condition is reported. Read `error` for it. |
|
|
88
|
-
| `sourcechange` | Fired when `source` changes. Read `source` for the new value. |
|
|
42
|
+
```
|
|
@@ -15,7 +15,7 @@ import '@videojs/html/media/hls-background-video';
|
|
|
15
15
|
Or load it from the [CDN](../../guides/cdn.md):
|
|
16
16
|
|
|
17
17
|
```html
|
|
18
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
18
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/hls-background-video.js"></script>
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
## Source behavior
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/media/hls-video';
|
|
|
13
13
|
Or load it from the [CDN](../../guides/cdn.md):
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/hls-video.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Examples
|
|
@@ -54,68 +54,4 @@ The CDN must answer with `Access-Control-Allow-Credentials: true` and a specific
|
|
|
54
54
|
|
|
55
55
|
```html
|
|
56
56
|
<hls-video src="https://cdn.example.com/stream.m3u8" crossorigin="use-credentials"></hls-video>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## API Reference
|
|
60
|
-
|
|
61
|
-
### Attributes
|
|
62
|
-
|
|
63
|
-
Forwards these standard media attributes to the internal `<video>`. See the [MDN media element reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video): `autopictureinpicture`, `autoplay`, `controls`, `controlslist`, `crossorigin`, `disablepictureinpicture`, `disableremoteplayback`, `loading`, `loop`, `muted`, `playsinline`, `poster`, `preload`, `src`.
|
|
64
|
-
|
|
65
|
-
These Video.js-specific attributes configure media behavior:
|
|
66
|
-
|
|
67
|
-
| Attribute | Type | Default | Description |
|
|
68
|
-
| --- | --- | --- | --- |
|
|
69
|
-
| `stream-type` | `'on-demand' \| 'live' \| 'unknown'` | `'unknown'` | The source's stream type — `'live'`, `'on-demand'`, or `'unknown'` until a media playlist has been parsed. Setting a non-`'unknown'` value pins a user override (detection stops updating it); setting `'unknown'` reverts to the engine's detected value. |
|
|
70
|
-
|
|
71
|
-
### Properties
|
|
72
|
-
|
|
73
|
-
| Property | Type | Default | Description |
|
|
74
|
-
| --- | --- | --- | --- |
|
|
75
|
-
| `alternativeMediaSuggestion` | `string \| undefined` | — | Read-only. A complete sentence naming the Media to reach for when this one can't play a source — `Try the hls.js-backed Mux media instead: import the hls-js flavor in place of the spf one.` Appended to the copy this adapter surfaces, and to the notices it logs. Name the flavor, not an import path: a Media is reached through several packages, each with its own counterpart. Empty here: `hls-video` has no better-equipped sibling to point at. A Media that does (a Mux Video built on this engine, whose hls.js-backed counterpart plays MPEG-TS and DRM) overrides this static, and its copy gains the second sentence with no other change. |
|
|
76
|
-
| `contentData` | `MediaContentData \| undefined` | — | Read-only. |
|
|
77
|
-
| `crossOrigin` | `'anonymous' \| 'use-credentials' \| null` | `null` | |
|
|
78
|
-
| `disableRemotePlayback` | `boolean` | `false` | |
|
|
79
|
-
| `engine` | `{ state: { [K in keyof S]-?: Signal<S[K]> }; context: { [K in keyof C]-?: Signal<C[K]> }; destroy(): Promise<void> }` | — | Read-only. Underlying playback engine — the low-level SPF reactive composition that drives playback. An advanced escape hatch for direct engine access; normal playback is driven through this element's own properties and methods. |
|
|
80
|
-
| `error` | `{ code: number; message: string; data?: unknown } \| null` | — | Read-only. The current fatal error, or `null`. Only *fatal* conditions appear here — the engine reports non-fatal ones too (they stay in `engine.state.errors`), and promoting them would tell a consumer playback had failed when it hadn't. Resets per source. Fires `'error'` when set. |
|
|
81
|
-
| `isFullscreen` | `boolean` | — | Read-only. |
|
|
82
|
-
| `isPictureInPicture` | `boolean` | — | Read-only. |
|
|
83
|
-
| `liveEdgeStart` | `number` | — | Read-only. Presentation time marking the start of the live-edge window — playback at `currentTime >= liveEdgeStart` counts as "at the live edge" (the same target the engine's `seekToLiveEdge` seeks to: window end − HOLD-BACK). `NaN` when the stream isn't live or nothing is resolved yet. Derived at read time from the engine's live window — no change event; re-read on `timeupdate`/`progress` (as the store's live feature does). |
|
|
84
|
-
| `preload` | `'' \| 'none' \| 'metadata' \| 'auto'` | `''` | Preload type (`'none'` / `'metadata'` / `'auto'`). |
|
|
85
|
-
| `source` | `{ src?: string; type?: string; drm?: Partial<Record<string, DrmSystemConfig>> } \| null` | `null` | Structured source: the manifest URL plus what a URL cannot carry, which today is the license servers for protected content. Setting it derives `src`. Assigning the same object back costs nothing — changing anything takes a new one. |
|
|
86
|
-
| `src` | `string` | `''` | |
|
|
87
|
-
| `streamType` | `'on-demand' \| 'live' \| 'unknown'` | `'unknown'` | The source's stream type — `'live'`, `'on-demand'`, or `'unknown'` until a media playlist has been parsed. Setting a non-`'unknown'` value pins a user override (detection stops updating it); setting `'unknown'` reverts to the engine's detected value. |
|
|
88
|
-
| `targetLiveWindow` | `number` | — | Read-only. The target live window: `NaN` for on-demand (or unknown), `0` for standard sliding-window live, `Infinity` for DVR (`#EXT-X-PLAYLIST-TYPE:EVENT`). Fires `targetlivewindowchange` on change. |
|
|
89
|
-
| `webkitCurrentPlaybackTargetIsWireless` | `boolean \| undefined` | — | Read-only. |
|
|
90
|
-
| `webkitPresentationMode` | `WebKitPresentationMode \| undefined` | — | Read-only. |
|
|
91
|
-
| `webkitSetPresentationMode` | `((mode: WebKitPresentationMode) => void) \| undefined` | — | Read-only. |
|
|
92
|
-
|
|
93
|
-
Also exposes these properties from the native media API. See [HTMLVideoElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement) for details: `autoplay`, `buffered`, `controls`, `currentSrc`, `currentTime`, `defaultMuted`, `defaultPlaybackRate`, `disablePictureInPicture`, `duration`, `ended`, `loop`, `muted`, `paused`, `playbackRate`, `played`, `playsInline`, `poster`, `readyState`, `remote`, `seekable`, `seeking`, `textTracks`, `title`, `videoHeight`, `videoWidth`, `volume`.
|
|
94
|
-
|
|
95
|
-
### Methods
|
|
96
|
-
|
|
97
|
-
Supports these media methods. See [HTMLVideoElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement) for details: `addTextTrack`, `canPlayType`, `exitFullscreen`, `exitPictureInPicture`, `load`, `pause`, `play`, `requestFullscreen`, `requestPictureInPicture`.
|
|
98
|
-
|
|
99
|
-
### Events
|
|
100
|
-
|
|
101
|
-
Re-dispatches these standard media events from the internal media element: `abort`, `addtrack`, `canplay`, `canplaythrough`, `change`, `contentdatachange`, `durationchange`, `emptied`, `ended`, `enterpictureinpicture`, `leavepictureinpicture`, `loadeddata`, `loadedmetadata`, `loadstart`, `pause`, `play`, `playing`, `progress`, `ratechange`, `removetrack`, `resize`, `seeked`, `seeking`, `stalled`, `suspend`, `timeupdate`, `volumechange`, `waiting`.
|
|
102
|
-
|
|
103
|
-
Also emits these Video.js-specific events:
|
|
104
|
-
|
|
105
|
-
| Event | Description |
|
|
106
|
-
| --- | --- |
|
|
107
|
-
| `error` | Fired when a fatal condition is reported. Read `error` for it. |
|
|
108
|
-
| `sourcechange` | Fired when `source` changes. Read `source` for the new value. |
|
|
109
|
-
| `streamtypechange` | Fired when the detected stream type changes. Read `streamType` for the new value. |
|
|
110
|
-
| `targetlivewindowchange` | Fired when the target live window changes. Read `targetLiveWindow` for the new value. |
|
|
111
|
-
|
|
112
|
-
### CSS custom properties
|
|
113
|
-
|
|
114
|
-
| Variable | Description |
|
|
115
|
-
| --- | --- |
|
|
116
|
-
| `--media-video-border-radius` | Border radius of the video element. |
|
|
117
|
-
| `--media-object-fit` | Object fit for the video. |
|
|
118
|
-
| `--media-object-position` | Object position for the video. |
|
|
119
|
-
| `--media-caption-track-duration` | Duration of the caption track transition. |
|
|
120
|
-
| `--media-caption-track-delay` | Delay before the caption track transition. |
|
|
121
|
-
| `--media-caption-track-y` | Vertical offset of the caption track. |
|
|
57
|
+
```
|
|
@@ -17,7 +17,7 @@ import '@videojs/html/media/hlsjs-video';
|
|
|
17
17
|
Or load it from the [CDN](../../guides/cdn.md):
|
|
18
18
|
|
|
19
19
|
```html
|
|
20
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
20
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/media/hlsjs-video.js"></script>
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Examples
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/live-audio/neutral-skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/live-audio-neutral.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Anatomy
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/live-audio/scaffold-skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/live-audio-scaffold.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Usage
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/live-audio/skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/live-audio.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Anatomy
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/live-video/neutral-skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/live-video-neutral.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Anatomy
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/live-video/scaffold-skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/live-video-scaffold.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Usage
|
|
@@ -13,7 +13,7 @@ import '@videojs/html/live-video/skin';
|
|
|
13
13
|
The import registers the skin and every UI element it composes. The [CDN](../../guides/cdn.md) player bundle registers this skin together with its player:
|
|
14
14
|
|
|
15
15
|
```html
|
|
16
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.2.0/live-video.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Anatomy
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Video.js v10 — HTML Components
|
|
2
2
|
|
|
3
|
-
> API reference for skins, media components, extensions, and interface components. Bundled with `@videojs/html` v10.
|
|
3
|
+
> API reference for skins, media components, extensions, and interface components. Bundled with `@videojs/html` v10.2.0. Links are relative paths to files in this directory.
|
|
4
4
|
|
|
5
5
|
## Layout
|
|
6
6
|
|