@videojs/html 10.0.0-rc.5 → 10.0.1
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 +0 -2
- 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/extensions/mux-data/extension.js +1 -1
- package/dist/default/ui/thumbnail/element.js +2 -2
- package/dist/default/version.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/skin2.js.map +1 -1
- package/dist/dev/define/live-audio/compat-skin2.js.map +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/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/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/ui/thumbnail/element.js +2 -2
- package/dist/dev/ui/thumbnail/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/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 +2 -6
- package/docs/guides/installation-shadcn.md +4 -8
- package/docs/guides/installation-svelte.md +2 -6
- package/docs/guides/installation-vue.md +2 -6
- package/docs/guides/installation.md +2 -6
- 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 +2 -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 +9 -9
- package/docs/guides/migrate-from-vidstack.md +9 -9
- package/docs/guides/migrate.md +17 -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 +6 -6
- package/docs/guides/skins.md +5 -5
- package/docs/guides/thumbnails.md +2 -2
- package/docs/guides/user-preferences.md +2 -2
- package/docs/guides/v10-roadmap.md +19 -54
- package/docs/llms.txt +5 -4
- 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-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-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 +1 -1
- package/docs/reference/components/hls-background-video.md +1 -1
- package/docs/reference/components/hls-video.md +1 -1
- package/docs/reference/components/hlsjs-video.md +1 -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-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-skin.md +37 -5
- package/docs/reference/components/llms.txt +1 -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/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-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 +1 -1
- package/docs/reference/components/youtube-video.md +1 -1
- package/package.json +38 -40
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
# v10 Roadmap
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Where Video.js v10 stands, what comes after 10.0, and the support plan for Video.js 8
|
|
4
4
|
|
|
5
5
|
Video.js v10 is a complete rebuild from the ground up, designed to be more modular, framework-flexible, and aligned with modern web development practices.
|
|
6
6
|
|
|
7
7
|
## Current versions
|
|
8
8
|
|
|
9
|
+
### Version 10
|
|
10
|
+
|
|
11
|
+
- Stable and recommended for new projects. Start with the [installation guide](./installation.md)
|
|
12
|
+
- Follows semantic versioning: breaking changes wait for a new major version
|
|
13
|
+
- Covers the fundamentals of Video.js 8
|
|
14
|
+
- Migration guides for [Video.js 8](./migrate-from-video-js-8.md), [Mux Player](./migrate-from-mux-player.md), [Plyr](./migrate-from-plyr.md), [Media Chrome](./migrate-from-media-chrome.md), and [Vidstack](./migrate-from-vidstack.md), each listing its known gaps
|
|
15
|
+
|
|
9
16
|
### Version 8
|
|
10
17
|
|
|
11
18
|
- Maintained with bug fixes and critical security patches only
|
|
@@ -17,72 +24,30 @@ Video.js v10 is a complete rebuild from the ground up, designed to be more modul
|
|
|
17
24
|
|
|
18
25
|
- Reserved only for urgent API-breaking changes that cannot be avoided
|
|
19
26
|
|
|
20
|
-
##
|
|
21
|
-
|
|
22
|
-
Wider testing release to the community.
|
|
23
|
-
|
|
24
|
-
### Core feature parity target
|
|
25
|
-
|
|
26
|
-
- Basic control set (play, pause, seek, volume, fullscreen)
|
|
27
|
-
- Adaptive streaming support via existing community engines
|
|
28
|
-
- No plugin migrations yet, without plugin author contribution
|
|
29
|
-
|
|
30
|
-
### What to expect
|
|
31
|
-
|
|
32
|
-
- Close to stable, but API changes are still possible
|
|
33
|
-
- Intended for experimental adoption in real-world projects
|
|
34
|
-
- Developers encouraged to follow the [installation guide](./installation.md), try it out, and report issues
|
|
35
|
-
|
|
36
|
-
## September 2026: v10 Release Candidate
|
|
37
|
-
|
|
38
|
-
Feature-complete release ahead of GA.
|
|
39
|
-
|
|
40
|
-
### What to expect
|
|
41
|
-
|
|
42
|
-
- Close to stable. Remaining API changes are driven by feedback on the release candidate
|
|
43
|
-
- Intended for adoption in real-world projects
|
|
44
|
-
- Migration guides and reference documentation ready for review
|
|
27
|
+
## After 10.0
|
|
45
28
|
|
|
46
|
-
|
|
29
|
+
These land in 10.x minor releases as they’re ready.
|
|
47
30
|
|
|
48
|
-
|
|
31
|
+
### Feature parity with Video.js 8 contrib
|
|
49
32
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
- Feature parity with Media Chrome, Vidstack, Plyr, and Mux Player
|
|
54
|
-
- Community encouraged to begin full reintegration projects, following the migration guides for [Video.js 8](./migrate-from-video-js-8.md), [Mux Player](./migrate-from-mux-player.md), [Plyr](./migrate-from-plyr.md), [Media Chrome](./migrate-from-media-chrome.md), and [Vidstack](./migrate-from-vidstack.md)
|
|
55
|
-
- Plugin ecosystem migration begins in earnest
|
|
33
|
+
- Ads integration
|
|
34
|
+
- Analytics support
|
|
35
|
+
- Plugin ecosystem migration, dependent on community contributions
|
|
56
36
|
|
|
57
37
|
### Engine development focus
|
|
58
38
|
|
|
59
39
|
- Lightweight adaptive streaming
|
|
60
40
|
- MoQ (Media over QUIC) support
|
|
61
41
|
|
|
62
|
-
##
|
|
63
|
-
|
|
64
|
-
**Extended feature parity** with Video.js “contrib” plugins:
|
|
65
|
-
|
|
66
|
-
- Ads integration
|
|
67
|
-
- Analytics support
|
|
68
|
-
- Further community plugin migration dependent on contributions
|
|
69
|
-
|
|
70
|
-
## End-of-life plan for Video.js v8
|
|
71
|
-
|
|
72
|
-
### Mid-2026
|
|
73
|
-
|
|
74
|
-
- v8/v9 moved to “video.js-legacy” repository and package
|
|
75
|
-
- Documentation preserved at [legacy.videojs.org](https://legacy.videojs.org)
|
|
76
|
-
- Hosted CDN copies will remain available
|
|
77
|
-
|
|
78
|
-
### 2027 and beyond
|
|
42
|
+
## Support plan for Video.js 8
|
|
79
43
|
|
|
80
|
-
-
|
|
81
|
-
-
|
|
44
|
+
- Documentation stays at [legacy.videojs.org](https://legacy.videojs.org)
|
|
45
|
+
- Hosted CDN copies remain available
|
|
46
|
+
- From 2027, security patches only, and community contributions are de-prioritized
|
|
82
47
|
|
|
83
48
|
---
|
|
84
49
|
|
|
85
|
-
**Want to contribute?** Check out the [v10 repository on GitHub](https://github.com/videojs/v10) to get involved
|
|
50
|
+
**Want to contribute?** Check out the [v10 repository on GitHub](https://github.com/videojs/v10) to get involved.
|
|
86
51
|
|
|
87
52
|
## Related pages
|
|
88
53
|
|
package/docs/llms.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Video.js v10 — HTML Documentation
|
|
2
2
|
|
|
3
|
-
> Bundled with `@videojs/html` v10.0.
|
|
3
|
+
> Bundled with `@videojs/html` v10.0.1. 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
|
|
|
@@ -31,7 +31,7 @@ Install Video.js, customize a skin, understand its main pieces, check browser an
|
|
|
31
31
|
- [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
32
|
- [Browser support](./guides/browser-support.md): Browsers and rendering environments supported by Video.js 10, and how the packaged skins reach them
|
|
33
33
|
- [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
|
|
34
|
-
- [v10 Roadmap](./guides/v10-roadmap.md):
|
|
34
|
+
- [v10 Roadmap](./guides/v10-roadmap.md): Where Video.js v10 stands, what comes after 10.0, and the support plan for Video.js 8
|
|
35
35
|
- [Contribute to Video.js](https://github.com/videojs/v10/blob/main/CONTRIBUTING.md)
|
|
36
36
|
|
|
37
37
|
### Frameworks
|
|
@@ -57,10 +57,10 @@ Understanding-oriented pages that explain how and why things work. Read these to
|
|
|
57
57
|
|
|
58
58
|
- [Features](./guides/features.md): The state and actions each feature adds to the player
|
|
59
59
|
- [Skins](./guides/skins.md): Packaged player designs that include both UI components and their styles.
|
|
60
|
-
- [Presets](./guides/presets.md): Pre-packaged player configurations that bundle state management, skins, and media
|
|
60
|
+
- [Presets](./guides/presets.md): Pre-packaged player configurations that bundle state management, skins, and media components for specific use cases.
|
|
61
61
|
- [UI components](./guides/ui-components.md): How Video.js UI components use focused elements, data attributes for state, and compound composition.
|
|
62
62
|
- [Accessibility](./guides/accessibility.md): How Video.js approaches accessibility, and what you should consider if you're deeply customizing your player
|
|
63
|
-
- [Media sources](./guides/media-sources.md): Set what a media
|
|
63
|
+
- [Media sources](./guides/media-sources.md): Set what a media component plays and how its engine plays it with the structured source property
|
|
64
64
|
|
|
65
65
|
### Playback
|
|
66
66
|
|
|
@@ -87,6 +87,7 @@ Guides for one player capability each: the recommended setup, how it works, brow
|
|
|
87
87
|
|
|
88
88
|
Guides for moving an existing player integration to Video.js v10, one per player you might be coming from.
|
|
89
89
|
|
|
90
|
+
- [Migrate to Video.js v10](./guides/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.
|
|
90
91
|
- [Migrate from Video.js 8](./guides/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
|
|
91
92
|
- [Migrate from Mux Player](./guides/migrate-from-mux-player.md): Move a Mux Player embed to Video.js v10 using a player, media component, skin, and analytics extension
|
|
92
93
|
- [Migrate from Plyr](./guides/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
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Fullscreen state and actions for the player store
|
|
4
4
|
|
|
5
|
-
Controls fullscreen mode. Tries the container element first, falls back to the media
|
|
5
|
+
Controls fullscreen mode. Tries the container element first, falls back to the media component.
|
|
6
6
|
|
|
7
7
|
## Import
|
|
8
8
|
|
|
@@ -25,7 +25,7 @@ The `liveVideoFeatures` and `videoFeatures` [feature bundles](../../guides/prese
|
|
|
25
25
|
|
|
26
26
|
| Action | Type | Description |
|
|
27
27
|
| --- | --- | --- |
|
|
28
|
-
| `requestFullscreen` | `() => Promise<void>` | Enter fullscreen mode. Tries container first, falls back to media
|
|
28
|
+
| `requestFullscreen` | `() => Promise<void>` | Enter fullscreen mode. Tries container first, falls back to media component. |
|
|
29
29
|
| `exitFullscreen` | `() => Promise<void>` | Exit fullscreen mode. |
|
|
30
30
|
|
|
31
31
|
### Selector
|
|
@@ -34,7 +34,7 @@ Attributes and matching properties the player element accepts. They exist only w
|
|
|
34
34
|
| Property | Type | Description |
|
|
35
35
|
| --- | --- | --- |
|
|
36
36
|
| `title` | `string` | The resolved content title. Set it through the player, not through the store. |
|
|
37
|
-
| `poster` | `string` | The resolved poster URL, independent of the media
|
|
37
|
+
| `poster` | `string` | The resolved poster URL, independent of the media component's own `poster`. Set it through the player, not through the store. |
|
|
38
38
|
|
|
39
39
|
### Selector
|
|
40
40
|
|
|
@@ -88,6 +88,6 @@ The flow between an attribute and its property runs one way: an attribute change
|
|
|
88
88
|
|
|
89
89
|
The media tier comes from media that reports content data and announces changes to it, and it covers `title` and `poster`. A media reports only the keys it can vouch for, so either may be absent while the other arrives. A key that never arrives means that tier never contributes, and the resolved value is whatever you set. Detaching the media clears its values; the values you set survive and apply to the next source.
|
|
90
90
|
|
|
91
|
-
`poster` is the feature’s own resolved value, not the media
|
|
91
|
+
`poster` is the feature’s own resolved value, not the media component’s `poster` attribute. Setting one does not set the other.
|
|
92
92
|
|
|
93
93
|
A low-resolution stand-in to show while the poster loads is not part of this feature. The [poster](../components/poster.md) renders an `<img>` you control, so give it a `background-image` and that shows until the poster itself paints over it. [Add a poster and loading placeholder](../../guides/poster.md) walks through that technique for each framework.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Media source state and actions for the player store
|
|
4
4
|
|
|
5
|
-
Tracks the loaded media resource and how much of it is ready. To change the source, set `src` or `source` on the media
|
|
5
|
+
Tracks the loaded media resource and how much of it is ready. To change the source, set `src` or `source` on the media component, which also carries type and engine configuration.
|
|
6
6
|
|
|
7
7
|
## Import
|
|
8
8
|
|
|
@@ -6,7 +6,7 @@ Manages subtitles, captions, chapters, and thumbnail tracks.
|
|
|
6
6
|
|
|
7
7
|
A default `kind="chapters"` track can also divide the [time slider](../components/time-slider.md) into chapter ranges and label the chapter at the current interaction position.
|
|
8
8
|
|
|
9
|
-
`thumbnailsTrack` is the first `kind="metadata"` track labeled `thumbnails`, or `null` when there is none. Its `crossOrigin` reports the media
|
|
9
|
+
`thumbnailsTrack` is the first `kind="metadata"` track labeled `thumbnails`, or `null` when there is none. Its `crossOrigin` reports the media component’s CORS mode, or `null` when the media is not CORS-enabled. [Thumbnail](../components/thumbnail.md) reads it to fetch sprite sheets the same way the browser fetched the track.
|
|
10
10
|
|
|
11
11
|
## Import
|
|
12
12
|
|
|
@@ -22,7 +22,7 @@ The `liveVideoFeatures` and `videoFeatures` [feature bundles](../../guides/prese
|
|
|
22
22
|
|
|
23
23
|
| Property | Type | Description |
|
|
24
24
|
| --- | --- | --- |
|
|
25
|
-
| `textTrackList` | `MediaTextTrack[]` | All text tracks available on the media
|
|
25
|
+
| `textTrackList` | `MediaTextTrack[]` | All text tracks available on the media component. |
|
|
26
26
|
| `subtitlesShowing` | `boolean` | Whether a captions/subtitles track is showing. |
|
|
27
27
|
| `chaptersCues` | `MediaTextCue[]` | Cues from the first `kind="chapters"` track, with cue ends clamped to a finite media duration. |
|
|
28
28
|
| `thumbnailsTrack` | `{ cues: MediaTextCue[]; src: string \| null; crossOrigin: 'anonymous' \| 'use-credentials' \| null } \| null` | The first thumbnails track, or `null` when there is none. |
|
|
@@ -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.0.
|
|
3
|
+
> API reference for the player factory, presets, store controllers, features, translation tools, and utilities. Bundled with `@videojs/html` v10.0.1. Links are relative paths to files in this directory.
|
|
4
4
|
|
|
5
5
|
## Player
|
|
6
6
|
|
|
@@ -14,7 +14,7 @@ Every guard on this page is a named export of the same package.
|
|
|
14
14
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
|
-
The player element’s `store.target` holds the media the player attached. It’s `null` until a media
|
|
17
|
+
The player element’s `store.target` holds the media the player attached. It’s `null` until a media component inside the player registers, so read it when you need it rather than once at startup:
|
|
18
18
|
|
|
19
19
|
**index.ts**
|
|
20
20
|
|
|
@@ -45,7 +45,7 @@ Each feature links to the same entry on its reference page.
|
|
|
45
45
|
| `setMuted` | `(muted: boolean) => boolean` | [`volumeFeature`](./feature-volume.md#volume-action-setMuted) | Set the muted state, updating the store immediately. Unmuting at volume 0 restores volume to 0.25. Returns the new muted value. |
|
|
46
46
|
| `isFullscreen` | `boolean` | [`fullscreenFeature`](./feature-fullscreen.md#fullscreen-state-isFullscreen) | Whether fullscreen mode is currently active. |
|
|
47
47
|
| `fullscreenAvailability` | `'available' \| 'unavailable' \| 'unsupported'` | [`fullscreenFeature`](./feature-fullscreen.md#fullscreen-state-fullscreenAvailability) | Whether fullscreen can be requested on this platform. |
|
|
48
|
-
| `requestFullscreen` | `() => Promise<void>` | [`fullscreenFeature`](./feature-fullscreen.md#fullscreen-action-requestFullscreen) | Enter fullscreen mode. Tries container first, falls back to media
|
|
48
|
+
| `requestFullscreen` | `() => Promise<void>` | [`fullscreenFeature`](./feature-fullscreen.md#fullscreen-action-requestFullscreen) | Enter fullscreen mode. Tries container first, falls back to media component. |
|
|
49
49
|
| `exitFullscreen` | `() => Promise<void>` | [`fullscreenFeature`](./feature-fullscreen.md#fullscreen-action-exitFullscreen) | Exit fullscreen mode. |
|
|
50
50
|
| `userActive` | `boolean` | [`controlsFeature`](./feature-controls.md#controls-state-userActive) | Whether the user has recently interacted with the player. |
|
|
51
51
|
| `controlsVisible` | `boolean` | [`controlsFeature`](./feature-controls.md#controls-state-controlsVisible) | Whether controls should be visible. |
|
|
@@ -53,7 +53,7 @@ Each feature links to the same entry on its reference page.
|
|
|
53
53
|
| `toggleControls` | `(forceShow?: boolean) => boolean` | [`controlsFeature`](./feature-controls.md#controls-action-toggleControls) | Toggle controls visibility, or force it with `forceShow`. Returns the new `controlsVisible` value. |
|
|
54
54
|
| `buffered` | `[number, number][]` | [`bufferFeature`](./feature-buffer.md#buffer-state-buffered) | Buffered time ranges as \[start, end\] tuples. |
|
|
55
55
|
| `seekable` | `[number, number][]` | [`bufferFeature`](./feature-buffer.md#buffer-state-seekable) | Seekable time ranges as \[start, end\] tuples. |
|
|
56
|
-
| `textTrackList` | `MediaTextTrack[]` | [`textTrackFeature`](./feature-text-tracks.md#textTrack-state-textTrackList) | All text tracks available on the media
|
|
56
|
+
| `textTrackList` | `MediaTextTrack[]` | [`textTrackFeature`](./feature-text-tracks.md#textTrack-state-textTrackList) | All text tracks available on the media component. |
|
|
57
57
|
| `subtitlesShowing` | `boolean` | [`textTrackFeature`](./feature-text-tracks.md#textTrack-state-subtitlesShowing) | Whether a captions/subtitles track is showing. |
|
|
58
58
|
| `chaptersCues` | `MediaTextCue[]` | [`textTrackFeature`](./feature-text-tracks.md#textTrack-state-chaptersCues) | Cues from the first `kind="chapters"` track, with cue ends clamped to a finite media duration. |
|
|
59
59
|
| `thumbnailsTrack` | `{ cues: MediaTextCue[]; src: string \| null; crossOrigin: 'anonymous' \| 'use-credentials' \| null } \| null` | [`textTrackFeature`](./feature-text-tracks.md#textTrack-state-thumbnailsTrack) | The first thumbnails track, or `null` when there is none. |
|
|
@@ -69,7 +69,7 @@ Each feature links to the same entry on its reference page.
|
|
|
69
69
|
| `error` | `{ code: number; message: string } \| null` | [`errorFeature`](./feature-error.md#error-state-error) | The current media error, or null if none. |
|
|
70
70
|
| `dismissError` | `() => void` | [`errorFeature`](./feature-error.md#error-action-dismissError) | Dismiss the current error by clearing it. |
|
|
71
71
|
| `title` | `string` | [`metadataFeature`](./feature-metadata.md#metadata-state-title) | The resolved content title. Set it through the player, not through the store. |
|
|
72
|
-
| `poster` | `string` | [`metadataFeature`](./feature-metadata.md#metadata-state-poster) | The resolved poster URL, independent of the media
|
|
72
|
+
| `poster` | `string` | [`metadataFeature`](./feature-metadata.md#metadata-state-poster) | The resolved poster URL, independent of the media component's own `poster`. Set it through the player, not through the store. |
|
|
73
73
|
| `currentSrc` | `string` | [`sourceFeature`](./feature-source.md#source-state-currentSrc) | Current media source URL (empty string if none). |
|
|
74
74
|
| `canPlay` | `boolean` | [`sourceFeature`](./feature-source.md#source-state-canPlay) | Whether enough data is loaded to begin playback. |
|
|
75
75
|
| `videoRenditionList` | `MediaVideoRendition[]` | [`qualityFeature`](./feature-quality.md#quality-state-videoRenditionList) | Video renditions available for manual quality selection. |
|
|
@@ -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.0.
|
|
17
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.1/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.
|
|
@@ -91,7 +91,7 @@ customElements.define('my-audio-player', PlayerElement);
|
|
|
91
91
|
|
|
92
92
|
## Media
|
|
93
93
|
|
|
94
|
-
The preset plays through a native [`<audio>`](../components/audio.md), so it registers no media
|
|
94
|
+
The preset plays through a native [`<audio>`](../components/audio.md), so it registers no media component of its own. Swap it for any compatible [media component](../../guides/media-sources.md), such as [`<hls-audio>`](../components/hls-audio.md) for HLS.
|
|
95
95
|
|
|
96
96
|
## Exports
|
|
97
97
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The background video preset — a player, feature bundle, skin, and media for ambient video with no controls
|
|
4
4
|
|
|
5
|
-
`@videojs/html/background` is the preset for ambient background video with no user controls. It bundles the `<background-video-player>` element, the `backgroundFeatures` bundle it is configured with, one chrome-less skin, and the `<background-video>` media
|
|
5
|
+
`@videojs/html/background` is the preset for ambient background video with no user controls. It bundles the `<background-video-player>` element, the `backgroundFeatures` bundle it is configured with, one chrome-less skin, and the `<background-video>` media component, which autoplays, mutes, and loops. See [Presets](../../guides/presets.md) for how presets fit together and [Background video](../../guides/background-video.md) for building one.
|
|
6
6
|
|
|
7
7
|
## Import
|
|
8
8
|
|
|
@@ -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.0.
|
|
18
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.1/background.js"></script>
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
Unlike the other presets, the background preset has one bundle and no player-only bundle.
|
|
@@ -52,7 +52,7 @@ The preset root also exports a `PlayerController` bound to the background player
|
|
|
52
52
|
|
|
53
53
|
## Feature bundle
|
|
54
54
|
|
|
55
|
-
`backgroundFeatures` is the array of [features](../../guides/features.md) the player is configured with. The background media
|
|
55
|
+
`backgroundFeatures` is the array of [features](../../guides/features.md) the player is configured with. The background media component handles autoplay, muting, and looping on its own:
|
|
56
56
|
|
|
57
57
|
`backgroundFeatures` is currently empty, so the player's store holds no feature state or actions.
|
|
58
58
|
|
|
@@ -14,14 +14,14 @@ 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.0.
|
|
17
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.1/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.
|
|
21
21
|
|
|
22
22
|
## Usage
|
|
23
23
|
|
|
24
|
-
Live streams are usually HLS, so this example plays through an HLS media
|
|
24
|
+
Live streams are usually HLS, so this example plays through an HLS media component instead of the preset’s native audio.
|
|
25
25
|
|
|
26
26
|
**index.html**
|
|
27
27
|
|
|
@@ -94,7 +94,7 @@ customElements.define('my-live-audio-player', PlayerElement);
|
|
|
94
94
|
|
|
95
95
|
## Media
|
|
96
96
|
|
|
97
|
-
The preset plays through a native [`<audio>`](../components/audio.md), so it registers no media
|
|
97
|
+
The preset plays through a native [`<audio>`](../components/audio.md), so it registers no media component of its own. Most browsers need a streaming [media component](../../guides/media-sources.md) to play a live source, such as [`<hls-audio>`](../components/hls-audio.md) for HLS.
|
|
98
98
|
|
|
99
99
|
## Exports
|
|
100
100
|
|
|
@@ -14,14 +14,14 @@ 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.0.
|
|
17
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.1/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.
|
|
21
21
|
|
|
22
22
|
## Usage
|
|
23
23
|
|
|
24
|
-
Live streams are usually HLS, so this example plays through an HLS media
|
|
24
|
+
Live streams are usually HLS, so this example plays through an HLS media component instead of the preset’s native video.
|
|
25
25
|
|
|
26
26
|
**index.html**
|
|
27
27
|
|
|
@@ -99,7 +99,7 @@ customElements.define('my-live-video-player', PlayerElement);
|
|
|
99
99
|
|
|
100
100
|
## Media
|
|
101
101
|
|
|
102
|
-
The preset plays through a native [`<video>`](../components/video.md), so it registers no media
|
|
102
|
+
The preset plays through a native [`<video>`](../components/video.md), so it registers no media component of its own. Most browsers need a streaming [media component](../../guides/media-sources.md) to play a live source, such as [`<hlsjs-video>`](../components/hlsjs-video.md) for HLS.
|
|
103
103
|
|
|
104
104
|
## Exports
|
|
105
105
|
|
|
@@ -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.0.
|
|
17
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.1/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.
|
|
@@ -98,7 +98,7 @@ customElements.define('my-video-player', PlayerElement);
|
|
|
98
98
|
|
|
99
99
|
## Media
|
|
100
100
|
|
|
101
|
-
The preset plays through a native [`<video>`](../components/video.md), so it registers no media
|
|
101
|
+
The preset plays through a native [`<video>`](../components/video.md), so it registers no media component of its own. Swap it for any compatible [media component](../../guides/media-sources.md), such as [`<hlsjs-video>`](../components/hlsjs-video.md) for HLS.
|
|
102
102
|
|
|
103
103
|
## Exports
|
|
104
104
|
|
|
@@ -14,7 +14,7 @@ Resolution is a pure string check. It doesn’t fetch the source, load an engine
|
|
|
14
14
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
|
-
Look up the media
|
|
17
|
+
Look up the media component for the result and give it the same `src`:
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
20
|
import { resolveAdapterType } from '@videojs/html';
|
|
@@ -39,7 +39,7 @@ Each media module you import adds its engine to your bundle, so import the rarel
|
|
|
39
39
|
|
|
40
40
|
### Adapter types
|
|
41
41
|
|
|
42
|
-
| Adapter type | Recognized sources | Media
|
|
42
|
+
| Adapter type | Recognized sources | Media component |
|
|
43
43
|
| --- | --- | --- |
|
|
44
44
|
| `youtube` | `youtube.com`, `youtu.be`, and `youtube-nocookie.com` video and playlist URLs | `<youtube-video>` |
|
|
45
45
|
| `vimeo` | `vimeo.com` and `player.vimeo.com` URLs | `<vimeo-video>` |
|
|
@@ -12,7 +12,7 @@ videojs.options.autoplay = true;
|
|
|
12
12
|
|
|
13
13
|
## Video.js 10 equivalent
|
|
14
14
|
|
|
15
|
-
Set attributes on `<video-player>`, `<video-skin>`, and the media
|
|
15
|
+
Set attributes on `<video-player>`, `<video-skin>`, and the media component.
|
|
16
16
|
|
|
17
17
|
See [Migrate from Video.js 8](../../guides/migrate-from-video-js-8.md) for the full setup.
|
|
18
18
|
|
|
@@ -10,14 +10,14 @@ The Compat skin of the audio preset provides basic controls and plain surfaces,
|
|
|
10
10
|
import '@videojs/html/audio/compat-skin';
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Anatomy
|
|
14
14
|
|
|
15
|
-
The skin goes between the player and the media
|
|
15
|
+
The skin goes between the player and the media component. It renders its controls around the media.
|
|
16
16
|
|
|
17
17
|
```html
|
|
18
18
|
<audio-player>
|
|
19
19
|
<audio-compat-skin>
|
|
20
|
-
<audio
|
|
20
|
+
<audio></audio>
|
|
21
21
|
</audio-compat-skin>
|
|
22
22
|
</audio-player>
|
|
23
23
|
```
|
|
@@ -26,6 +26,36 @@ The skin goes between the player and the media element. It renders its controls
|
|
|
26
26
|
|
|
27
27
|
Packaged skins style themselves and expose a small set of public CSS custom properties. Everything else inside the skin is private and may change between releases. [Customize skins](../../guides/customize-skins.md#style-a-packaged-skin) documents the properties. For deeper changes, the Video.js registry provides the skin files.
|
|
28
28
|
|
|
29
|
+
## Examples
|
|
30
|
+
|
|
31
|
+
### Basic Usage
|
|
32
|
+
|
|
33
|
+
**index.html**
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<audio-player>
|
|
37
|
+
<audio-compat-skin class="html-audio-compat-skin-basic">
|
|
38
|
+
<audio src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/audio.m4a" crossorigin="anonymous"></audio>
|
|
39
|
+
</audio-compat-skin>
|
|
40
|
+
</audio-player>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**index.css**
|
|
44
|
+
|
|
45
|
+
```css
|
|
46
|
+
.html-audio-compat-skin-basic {
|
|
47
|
+
display: block;
|
|
48
|
+
width: 100%;
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**index.ts**
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
import '@videojs/html/audio/player';
|
|
56
|
+
import '@videojs/html/audio/compat-skin';
|
|
57
|
+
```
|
|
58
|
+
|
|
29
59
|
## Own the UI
|
|
30
60
|
|
|
31
61
|
Packaged skins keep their controls and layout inside Video.js. When you need to add, remove, rearrange, or deeply restyle controls, use Shadcn to add the skin source to your project. Its components, layout, styles, and interactions become local files you can change.
|
|
@@ -13,17 +13,17 @@ 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.0.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.1/audio-neutral.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Anatomy
|
|
20
20
|
|
|
21
|
-
The skin goes between the player and the media
|
|
21
|
+
The skin goes between the player and the media component. It renders its controls around the media.
|
|
22
22
|
|
|
23
23
|
```html
|
|
24
24
|
<audio-player>
|
|
25
25
|
<audio-neutral-skin>
|
|
26
|
-
<audio
|
|
26
|
+
<audio></audio>
|
|
27
27
|
</audio-neutral-skin>
|
|
28
28
|
</audio-player>
|
|
29
29
|
```
|
|
@@ -32,6 +32,36 @@ The skin goes between the player and the media element. It renders its controls
|
|
|
32
32
|
|
|
33
33
|
Packaged skins style themselves and expose a small set of public CSS custom properties. Everything else inside the skin is private and may change between releases. [Customize skins](../../guides/customize-skins.md#style-a-packaged-skin) documents the properties. For deeper changes, the Video.js registry provides the skin files.
|
|
34
34
|
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
### Basic Usage
|
|
38
|
+
|
|
39
|
+
**index.html**
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<audio-player>
|
|
43
|
+
<audio-neutral-skin class="html-audio-neutral-skin-basic">
|
|
44
|
+
<audio src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/audio.m4a" crossorigin="anonymous"></audio>
|
|
45
|
+
</audio-neutral-skin>
|
|
46
|
+
</audio-player>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**index.css**
|
|
50
|
+
|
|
51
|
+
```css
|
|
52
|
+
.html-audio-neutral-skin-basic {
|
|
53
|
+
display: block;
|
|
54
|
+
width: 100%;
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**index.ts**
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
import '@videojs/html/audio/player';
|
|
62
|
+
import '@videojs/html/audio/neutral-skin';
|
|
63
|
+
```
|
|
64
|
+
|
|
35
65
|
## Own the UI
|
|
36
66
|
|
|
37
67
|
Packaged skins keep their controls and layout inside Video.js. When you need to add, remove, rearrange, or deeply restyle controls, use Shadcn to add the skin source to your project. Its components, layout, styles, and interactions become local files you can change.
|
|
@@ -13,17 +13,17 @@ 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.0.
|
|
16
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.1/audio.js"></script>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Anatomy
|
|
20
20
|
|
|
21
|
-
The skin goes between the player and the media
|
|
21
|
+
The skin goes between the player and the media component. It renders its controls around the media.
|
|
22
22
|
|
|
23
23
|
```html
|
|
24
24
|
<audio-player>
|
|
25
25
|
<audio-skin>
|
|
26
|
-
<audio
|
|
26
|
+
<audio></audio>
|
|
27
27
|
</audio-skin>
|
|
28
28
|
</audio-player>
|
|
29
29
|
```
|
|
@@ -32,6 +32,36 @@ The skin goes between the player and the media element. It renders its controls
|
|
|
32
32
|
|
|
33
33
|
Packaged skins style themselves and expose a small set of public CSS custom properties. Everything else inside the skin is private and may change between releases. [Customize skins](../../guides/customize-skins.md#style-a-packaged-skin) documents the properties. For deeper changes, the Video.js registry provides the skin files.
|
|
34
34
|
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
### Basic Usage
|
|
38
|
+
|
|
39
|
+
**index.html**
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<audio-player>
|
|
43
|
+
<audio-skin class="html-audio-skin-basic">
|
|
44
|
+
<audio src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/audio.m4a" crossorigin="anonymous"></audio>
|
|
45
|
+
</audio-skin>
|
|
46
|
+
</audio-player>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**index.css**
|
|
50
|
+
|
|
51
|
+
```css
|
|
52
|
+
.html-audio-skin-basic {
|
|
53
|
+
display: block;
|
|
54
|
+
width: 100%;
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**index.ts**
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
import '@videojs/html/audio/player';
|
|
62
|
+
import '@videojs/html/audio/skin';
|
|
63
|
+
```
|
|
64
|
+
|
|
35
65
|
## Own the UI
|
|
36
66
|
|
|
37
67
|
Packaged skins keep their controls and layout inside Video.js. When you need to add, remove, rearrange, or deeply restyle controls, use Shadcn to add the skin source to your project. Its components, layout, styles, and interactions become local files you can change.
|
|
@@ -4,7 +4,7 @@ Native audio playback that can provide media to a Video.js player
|
|
|
4
4
|
|
|
5
5
|
## Import
|
|
6
6
|
|
|
7
|
-
The media
|
|
7
|
+
The media component is the browser’s native `<audio>`. Import the audio player registration when it should provide media to Video.js:
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
10
|
import '@videojs/html/audio/player';
|