vidply 1.2.0 → 1.2.3
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 +974 -946
- package/dist/dev/{vidply.AudioDescriptionManager-R47Q4YR4.js → vidply.AudioDescriptionManager-JYYLK5KB.js} +275 -19
- package/dist/dev/vidply.AudioDescriptionManager-JYYLK5KB.js.map +7 -0
- package/dist/dev/{vidply.CaptionStyleMenu-7XHRBWUM.js → vidply.CaptionStyleMenu-47RCKQF5.js} +4 -4
- package/dist/dev/{vidply.DASHRenderer-PWEMC3BT.js → vidply.DASHRenderer-VEJ4HDHO.js} +3 -3
- package/dist/dev/vidply.DASHRenderer-VEJ4HDHO.js.map +7 -0
- package/dist/dev/{vidply.FloatingPlayerManager-PKNNNAS2.js → vidply.FloatingPlayerManager-C2UVRPZY.js} +5 -5
- package/dist/dev/vidply.FloatingPlayerManager-C2UVRPZY.js.map +7 -0
- package/dist/dev/{vidply.HLSRenderer-E7RQ74HI.js → vidply.HLSRenderer-ZVBK2TNQ.js} +4 -4
- package/dist/dev/vidply.HLSRenderer-ZVBK2TNQ.js.map +7 -0
- package/dist/dev/vidply.HTML5Renderer-HLRQUOCU.js +12 -0
- package/dist/dev/{vidply.SignLanguageManager-FET5FQZ7.js → vidply.SignLanguageManager-FLUCBW5H.js} +8 -8
- package/dist/dev/vidply.SignLanguageManager-FLUCBW5H.js.map +7 -0
- package/dist/dev/{vidply.SoundCloudRenderer-RVSJZODO.js → vidply.SoundCloudRenderer-MGMAJ7NK.js} +3 -3
- package/dist/dev/vidply.SoundCloudRenderer-MGMAJ7NK.js.map +7 -0
- package/dist/dev/{vidply.TranscriptManager-5GXOQCLX.js → vidply.TranscriptManager-Y2RYXHJW.js} +10 -10
- package/dist/dev/vidply.TranscriptManager-Y2RYXHJW.js.map +7 -0
- package/dist/dev/{vidply.VimeoRenderer-ER2LSBBW.js → vidply.VimeoRenderer-RQFQD7OE.js} +3 -3
- package/dist/dev/vidply.VimeoRenderer-RQFQD7OE.js.map +7 -0
- package/dist/dev/{vidply.YouTubeRenderer-NFTOWJAB.js → vidply.YouTubeRenderer-EU2BARZF.js} +3 -3
- package/dist/dev/vidply.YouTubeRenderer-EU2BARZF.js.map +7 -0
- package/dist/dev/{vidply.chunk-BNFIUL2Z.js → vidply.chunk-6LYZYI5G.js} +3 -3
- package/dist/dev/vidply.chunk-6LYZYI5G.js.map +7 -0
- package/dist/dev/{vidply.chunk-NQPURMQY.js → vidply.chunk-A4ESEOQ2.js} +6 -6
- package/dist/dev/vidply.chunk-A4ESEOQ2.js.map +7 -0
- package/dist/dev/{vidply.chunk-W25HUCHS.js → vidply.chunk-CGYIED2I.js} +2 -2
- package/dist/dev/vidply.chunk-CGYIED2I.js.map +7 -0
- package/dist/dev/{vidply.chunk-SK4V2DAU.js → vidply.chunk-HZ7UOKOU.js} +3 -3
- package/dist/dev/{vidply.chunk-RZWZGDV7.js → vidply.chunk-I6EDRYGJ.js} +33 -6
- package/dist/dev/vidply.chunk-I6EDRYGJ.js.map +7 -0
- package/dist/dev/{vidply.chunk-64WXMTGL.js → vidply.chunk-JKMQGLCJ.js} +5 -5
- package/dist/dev/vidply.chunk-JKMQGLCJ.js.map +7 -0
- package/dist/dev/{vidply.chunk-DZSDO3B7.js → vidply.chunk-JZNZX32Z.js} +2 -2
- package/dist/dev/{vidply.chunk-VMSQAZM7.js → vidply.chunk-P25MRJ6O.js} +2 -2
- package/dist/dev/{vidply.chunk-6RQA4ROD.js → vidply.chunk-PRFNESYA.js} +2 -2
- package/dist/dev/{vidply.chunk-KI7C3QVL.js → vidply.chunk-UI3RYCVF.js} +4 -3
- package/dist/dev/vidply.chunk-UI3RYCVF.js.map +7 -0
- package/dist/dev/{vidply.chunk-JJ47NO24.js → vidply.chunk-UNFGMABP.js} +2 -2
- package/dist/dev/vidply.chunk-UNFGMABP.js.map +7 -0
- package/dist/dev/{vidply.de-4YAT7FFM.js → vidply.de-VAUVSQXC.js} +29 -2
- package/dist/dev/vidply.de-VAUVSQXC.js.map +7 -0
- package/dist/dev/{vidply.es-LEWIRUBH.js → vidply.es-G65HFWO6.js} +29 -2
- package/dist/dev/vidply.es-G65HFWO6.js.map +7 -0
- package/dist/dev/vidply.esm.js +648 -35
- package/dist/dev/vidply.esm.js.map +3 -3
- package/dist/dev/{vidply.fr-Q4GV2NOE.js → vidply.fr-MJNOZELM.js} +29 -2
- package/dist/dev/vidply.fr-MJNOZELM.js.map +7 -0
- package/dist/dev/{vidply.ja-S6ITA6WU.js → vidply.ja-INMDHIYJ.js} +29 -2
- package/dist/dev/vidply.ja-INMDHIYJ.js.map +7 -0
- package/dist/legacy/vidply.js +1062 -34
- package/dist/legacy/vidply.js.map +3 -3
- package/dist/legacy/vidply.min.js +2 -2
- package/dist/legacy/vidply.min.meta.json +127 -55
- package/dist/prod/vidply.AudioDescriptionManager-EKWUNOPE.min.js +6 -0
- package/dist/prod/{vidply.CaptionStyleMenu-M3KVQWB5.min.js → vidply.CaptionStyleMenu-JTWSNHRQ.min.js} +2 -2
- package/dist/prod/{vidply.DASHRenderer-DN3S27AV.min.js → vidply.DASHRenderer-CIDAHFWM.min.js} +2 -2
- package/dist/prod/{vidply.FloatingPlayerManager-SKAZ4J43.min.js → vidply.FloatingPlayerManager-VZXHPCPM.min.js} +2 -2
- package/dist/prod/{vidply.HLSRenderer-62HH4YTK.min.js → vidply.HLSRenderer-Q6EFYKID.min.js} +2 -2
- package/dist/prod/vidply.HTML5Renderer-XRDJUTOO.min.js +6 -0
- package/dist/prod/{vidply.SignLanguageManager-V3OBTSSF.min.js → vidply.SignLanguageManager-JUOSA5AM.min.js} +2 -2
- package/dist/prod/{vidply.SoundCloudRenderer-CXRVZIAJ.min.js → vidply.SoundCloudRenderer-7ODD46PO.min.js} +2 -2
- package/dist/prod/{vidply.TranscriptManager-SYM3DFUY.min.js → vidply.TranscriptManager-4B2QKYGQ.min.js} +2 -2
- package/dist/prod/{vidply.VimeoRenderer-72TWRYFQ.min.js → vidply.VimeoRenderer-MR3UYLY7.min.js} +2 -2
- package/dist/prod/{vidply.YouTubeRenderer-UMHEV3KD.min.js → vidply.YouTubeRenderer-ITRTC7NR.min.js} +2 -2
- package/dist/prod/{vidply.chunk-YEENJS3Q.min.js → vidply.chunk-3EEDXU4T.min.js} +2 -2
- package/dist/prod/{vidply.chunk-P4UXOHWA.min.js → vidply.chunk-5HTX5QXW.min.js} +1 -1
- package/dist/prod/{vidply.chunk-ABPXVDLZ.min.js → vidply.chunk-6OGHHIYP.min.js} +2 -2
- package/dist/prod/{vidply.chunk-UK7YGOB5.min.js → vidply.chunk-GUPGMFUZ.min.js} +2 -2
- package/dist/prod/{vidply.chunk-WX3MVEAL.min.js → vidply.chunk-MWEBITCP.min.js} +1 -1
- package/dist/prod/{vidply.chunk-2TB6MUHO.min.js → vidply.chunk-PL3P3JHR.min.js} +1 -1
- package/dist/prod/{vidply.chunk-EKEYJWMG.min.js → vidply.chunk-QQZGV7TD.min.js} +2 -2
- package/dist/prod/{vidply.chunk-Z3YDSA7O.min.js → vidply.chunk-U5IRRYG5.min.js} +1 -1
- package/dist/prod/{vidply.chunk-TM6AXJVD.min.js → vidply.chunk-VKHV4QHA.min.js} +2 -2
- package/dist/prod/{vidply.chunk-P3PQBY7N.min.js → vidply.chunk-XA4M574A.min.js} +1 -1
- package/dist/prod/{vidply.chunk-RI3X7WHK.min.js → vidply.chunk-ZPTV4JEP.min.js} +2 -2
- package/dist/prod/{vidply.de-BCHXRQ53.min.js → vidply.de-UZHFCEZU.min.js} +2 -2
- package/dist/prod/{vidply.es-PICAKMZD.min.js → vidply.es-BOISUV2S.min.js} +2 -2
- package/dist/prod/vidply.esm.min.js +2 -2
- package/dist/prod/{vidply.fr-ZILI7CDR.min.js → vidply.fr-ICSMKPFM.min.js} +2 -2
- package/dist/prod/{vidply.ja-5WQ4OK4J.min.js → vidply.ja-VQ2HKGAY.min.js} +2 -2
- package/dist/vidply.css +5852 -5796
- package/dist/vidply.esm.min.meta.json +204 -149
- package/dist/vidply.min.css +1 -1
- package/package.json +11 -11
- package/src/controls/CaptionManager.ts +598 -598
- package/src/controls/ControlBar.ts +4191 -4159
- package/src/controls/KeyboardHelp.ts +326 -0
- package/src/controls/KeyboardManager.ts +387 -383
- package/src/controls/SettingsDialog.ts +488 -488
- package/src/controls/TranscriptManager.ts +2426 -2426
- package/src/core/AudioDescriptionManager.ts +863 -774
- package/src/core/DescriptionSpeechManager.ts +232 -0
- package/src/core/FloatingPlayerManager.ts +674 -674
- package/src/core/LazyInit.ts +80 -80
- package/src/core/MediaSessionManager.ts +341 -0
- package/src/core/MetadataAlertsManager.ts +514 -514
- package/src/core/Player.ts +2973 -2872
- package/src/core/PosterManager.ts +169 -169
- package/src/core/PseudoFullscreen.ts +179 -179
- package/src/core/ResponsiveManager.ts +231 -231
- package/src/core/ResumeManager.ts +236 -236
- package/src/core/SignLanguageManager.ts +1308 -1308
- package/src/core/ThemeManager.ts +157 -157
- package/src/features/PlaylistManager.ts +1838 -1827
- package/src/i18n/i18n.ts +223 -223
- package/src/i18n/languages/de.ts +244 -217
- package/src/i18n/languages/en.ts +245 -218
- package/src/i18n/languages/es.ts +241 -214
- package/src/i18n/languages/fr.ts +241 -214
- package/src/i18n/languages/ja.ts +241 -214
- package/src/icons/Icons.ts +168 -167
- package/src/index.ts +196 -193
- package/src/renderers/DASHRenderer.ts +1077 -1077
- package/src/renderers/HLSRenderer.ts +944 -944
- package/src/renderers/HTML5Renderer.ts +389 -389
- package/src/renderers/SoundCloudRenderer.ts +437 -437
- package/src/renderers/VimeoRenderer.ts +298 -298
- package/src/renderers/YouTubeRenderer.ts +290 -290
- package/src/styles/vidply.css +5852 -5796
- package/src/types/events.ts +128 -122
- package/src/types/globals.d.ts +313 -313
- package/src/types/options.ts +199 -182
- package/src/types/renderer.ts +58 -58
- package/src/utils/DOMUtils.ts +281 -281
- package/src/utils/DownloadInfo.ts +171 -171
- package/src/utils/DraggablePanel.ts +539 -539
- package/src/utils/DraggablePanelMenu.ts +195 -195
- package/src/utils/DraggableResizable.ts +997 -997
- package/src/utils/EventEmitter.ts +59 -59
- package/src/utils/FormUtils.ts +95 -95
- package/src/utils/MenuFactory.ts +483 -483
- package/src/utils/Sanitize.ts +70 -70
- package/src/utils/SettingsMenuFactory.ts +289 -289
- package/src/utils/StorageManager.ts +287 -287
- package/src/utils/TrackLabelUtils.ts +52 -52
- package/src/utils/UrlSafe.ts +69 -69
- package/src/utils/VideoFrameCapture.ts +114 -114
- package/src/utils/WindowComponents.ts +250 -250
- package/dist/dev/vidply.AudioDescriptionManager-R47Q4YR4.js.map +0 -7
- package/dist/dev/vidply.DASHRenderer-PWEMC3BT.js.map +0 -7
- package/dist/dev/vidply.FloatingPlayerManager-PKNNNAS2.js.map +0 -7
- package/dist/dev/vidply.HLSRenderer-E7RQ74HI.js.map +0 -7
- package/dist/dev/vidply.HTML5Renderer-BU4QJJJY.js +0 -12
- package/dist/dev/vidply.SignLanguageManager-FET5FQZ7.js.map +0 -7
- package/dist/dev/vidply.SoundCloudRenderer-RVSJZODO.js.map +0 -7
- package/dist/dev/vidply.TranscriptManager-5GXOQCLX.js.map +0 -7
- package/dist/dev/vidply.VimeoRenderer-ER2LSBBW.js.map +0 -7
- package/dist/dev/vidply.YouTubeRenderer-NFTOWJAB.js.map +0 -7
- package/dist/dev/vidply.chunk-64WXMTGL.js.map +0 -7
- package/dist/dev/vidply.chunk-BNFIUL2Z.js.map +0 -7
- package/dist/dev/vidply.chunk-JJ47NO24.js.map +0 -7
- package/dist/dev/vidply.chunk-KI7C3QVL.js.map +0 -7
- package/dist/dev/vidply.chunk-NQPURMQY.js.map +0 -7
- package/dist/dev/vidply.chunk-RZWZGDV7.js.map +0 -7
- package/dist/dev/vidply.chunk-W25HUCHS.js.map +0 -7
- package/dist/dev/vidply.de-4YAT7FFM.js.map +0 -7
- package/dist/dev/vidply.es-LEWIRUBH.js.map +0 -7
- package/dist/dev/vidply.fr-Q4GV2NOE.js.map +0 -7
- package/dist/dev/vidply.ja-S6ITA6WU.js.map +0 -7
- package/dist/prod/vidply.AudioDescriptionManager-RHLIJW5C.min.js +0 -6
- package/dist/prod/vidply.HTML5Renderer-IU5T3WEW.min.js +0 -6
- /package/dist/dev/{vidply.CaptionStyleMenu-7XHRBWUM.js.map → vidply.CaptionStyleMenu-47RCKQF5.js.map} +0 -0
- /package/dist/dev/{vidply.HTML5Renderer-BU4QJJJY.js.map → vidply.HTML5Renderer-HLRQUOCU.js.map} +0 -0
- /package/dist/dev/{vidply.chunk-SK4V2DAU.js.map → vidply.chunk-HZ7UOKOU.js.map} +0 -0
- /package/dist/dev/{vidply.chunk-DZSDO3B7.js.map → vidply.chunk-JZNZX32Z.js.map} +0 -0
- /package/dist/dev/{vidply.chunk-VMSQAZM7.js.map → vidply.chunk-P25MRJ6O.js.map} +0 -0
- /package/dist/dev/{vidply.chunk-6RQA4ROD.js.map → vidply.chunk-PRFNESYA.js.map} +0 -0
package/src/types/options.ts
CHANGED
|
@@ -1,182 +1,199 @@
|
|
|
1
|
-
import type { Player } from '../core/Player.js';
|
|
2
|
-
|
|
3
|
-
export interface KeyboardShortcuts {
|
|
4
|
-
'play-pause'?: string[];
|
|
5
|
-
'volume-up'?: string[];
|
|
6
|
-
'volume-down'?: string[];
|
|
7
|
-
'seek-forward'?: string[];
|
|
8
|
-
'seek-backward'?: string[];
|
|
9
|
-
'mute'?: string[];
|
|
10
|
-
'fullscreen'?: string[];
|
|
11
|
-
'captions'?: string[];
|
|
12
|
-
'caption-style-menu'?: string[];
|
|
13
|
-
'speed-up'?: string[];
|
|
14
|
-
'speed-down'?: string[];
|
|
15
|
-
'speed-menu'?: string[];
|
|
16
|
-
'quality-menu'?: string[];
|
|
17
|
-
'chapters-menu'?: string[];
|
|
18
|
-
'transcript-toggle'?: string[];
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
//
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
//
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
//
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
1
|
+
import type { Player } from '../core/Player.js';
|
|
2
|
+
|
|
3
|
+
export interface KeyboardShortcuts {
|
|
4
|
+
'play-pause'?: string[];
|
|
5
|
+
'volume-up'?: string[];
|
|
6
|
+
'volume-down'?: string[];
|
|
7
|
+
'seek-forward'?: string[];
|
|
8
|
+
'seek-backward'?: string[];
|
|
9
|
+
'mute'?: string[];
|
|
10
|
+
'fullscreen'?: string[];
|
|
11
|
+
'captions'?: string[];
|
|
12
|
+
'caption-style-menu'?: string[];
|
|
13
|
+
'speed-up'?: string[];
|
|
14
|
+
'speed-down'?: string[];
|
|
15
|
+
'speed-menu'?: string[];
|
|
16
|
+
'quality-menu'?: string[];
|
|
17
|
+
'chapters-menu'?: string[];
|
|
18
|
+
'transcript-toggle'?: string[];
|
|
19
|
+
'help'?: string[];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface PlayerOptions {
|
|
23
|
+
// Display
|
|
24
|
+
width: number | string | null;
|
|
25
|
+
height: number | string | null;
|
|
26
|
+
poster: string | null;
|
|
27
|
+
responsive: boolean;
|
|
28
|
+
fillContainer: boolean;
|
|
29
|
+
mediaType?: 'video' | 'audio';
|
|
30
|
+
|
|
31
|
+
// Media metadata (used for the Media Session API: OS / lock-screen
|
|
32
|
+
// controls and now-playing info). For playlists, the per-track
|
|
33
|
+
// title/artist/poster take precedence over these.
|
|
34
|
+
title?: string | null;
|
|
35
|
+
artist?: string | null;
|
|
36
|
+
album?: string | null;
|
|
37
|
+
|
|
38
|
+
// Integrate with the OS media controls via the Media Session API
|
|
39
|
+
// (lock-screen / notification controls, headset buttons, now-playing
|
|
40
|
+
// metadata and artwork). Set to false to opt out.
|
|
41
|
+
mediaSession: boolean;
|
|
42
|
+
|
|
43
|
+
// Playback
|
|
44
|
+
autoplay: boolean;
|
|
45
|
+
loop: boolean;
|
|
46
|
+
muted: boolean;
|
|
47
|
+
volume: number;
|
|
48
|
+
playbackSpeed: number;
|
|
49
|
+
preload: 'none' | 'metadata' | 'auto';
|
|
50
|
+
initialDuration: number;
|
|
51
|
+
deferLoad: boolean;
|
|
52
|
+
requirePlaybackForAccessibilityToggles: boolean;
|
|
53
|
+
startTime: number;
|
|
54
|
+
playsInline: boolean;
|
|
55
|
+
|
|
56
|
+
// Controls
|
|
57
|
+
controls: boolean;
|
|
58
|
+
hideControlsDelay: number;
|
|
59
|
+
playPauseButton: boolean;
|
|
60
|
+
progressBar: boolean;
|
|
61
|
+
currentTime: boolean;
|
|
62
|
+
duration: boolean;
|
|
63
|
+
volumeControl: boolean;
|
|
64
|
+
muteButton: boolean;
|
|
65
|
+
chaptersButton: boolean;
|
|
66
|
+
qualityButton: boolean;
|
|
67
|
+
captionStyleButton: boolean;
|
|
68
|
+
speedButton: boolean;
|
|
69
|
+
hideSpeedForHls: boolean;
|
|
70
|
+
hideSpeedForHlsVideo: boolean;
|
|
71
|
+
hideSpeedForDash: boolean;
|
|
72
|
+
hideSpeedForDashVideo: boolean;
|
|
73
|
+
captionsButton: boolean;
|
|
74
|
+
transcriptButton: boolean;
|
|
75
|
+
fullscreenButton: boolean;
|
|
76
|
+
pipButton: boolean;
|
|
77
|
+
floating: boolean;
|
|
78
|
+
floatingPosition: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
79
|
+
floatingMinViewportWidth: number;
|
|
80
|
+
downloadButton: boolean;
|
|
81
|
+
downloadUrl: string | null;
|
|
82
|
+
downloadFormat: string | null;
|
|
83
|
+
downloadFileSize: number | null;
|
|
84
|
+
downloadFetchSize: boolean;
|
|
85
|
+
playlistToggleButton?: boolean;
|
|
86
|
+
helpButton: boolean;
|
|
87
|
+
|
|
88
|
+
// Seeking
|
|
89
|
+
seekInterval: number;
|
|
90
|
+
seekIntervalLarge: number;
|
|
91
|
+
|
|
92
|
+
// Captions
|
|
93
|
+
captions: boolean;
|
|
94
|
+
captionsDefault: boolean;
|
|
95
|
+
captionsFontSize: string;
|
|
96
|
+
captionsFontFamily: string;
|
|
97
|
+
captionsColor: string;
|
|
98
|
+
captionsBackgroundColor: string;
|
|
99
|
+
captionsOpacity: number;
|
|
100
|
+
|
|
101
|
+
// Audio Description
|
|
102
|
+
audioDescription: boolean;
|
|
103
|
+
audioDescriptionSrc: string | null;
|
|
104
|
+
audioDescriptionButton: boolean;
|
|
105
|
+
audioDescriptionMode: 'auto' | 'swap' | 'vtt_speech';
|
|
106
|
+
audioDescriptionSpeech: boolean;
|
|
107
|
+
audioDescriptionExtended: boolean;
|
|
108
|
+
|
|
109
|
+
// Sign Language
|
|
110
|
+
signLanguage: boolean;
|
|
111
|
+
signLanguageSrc: string | null;
|
|
112
|
+
signLanguageButton: boolean;
|
|
113
|
+
signLanguagePosition: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
114
|
+
signLanguageDisplayMode: 'pip' | 'main' | 'both';
|
|
115
|
+
signLanguageSources?: Record<string, string>;
|
|
116
|
+
|
|
117
|
+
// Transcripts
|
|
118
|
+
transcript: boolean;
|
|
119
|
+
transcriptPosition: string;
|
|
120
|
+
transcriptContainer: HTMLElement | string | null;
|
|
121
|
+
|
|
122
|
+
// Keyboard
|
|
123
|
+
keyboard: boolean;
|
|
124
|
+
keyboardShortcuts: KeyboardShortcuts;
|
|
125
|
+
|
|
126
|
+
// Accessibility
|
|
127
|
+
ariaLabels: Record<string, string>;
|
|
128
|
+
screenReaderAnnouncements: boolean;
|
|
129
|
+
highContrast: boolean;
|
|
130
|
+
focusHighlight: boolean;
|
|
131
|
+
metadataAlerts: Record<string, unknown>;
|
|
132
|
+
metadataHashtags: Record<string, unknown>;
|
|
133
|
+
|
|
134
|
+
// Languages
|
|
135
|
+
language: string;
|
|
136
|
+
languages: string[];
|
|
137
|
+
languageFiles?: Record<string, string>;
|
|
138
|
+
languageFile?: string;
|
|
139
|
+
languageFileUrl?: string;
|
|
140
|
+
|
|
141
|
+
// Resume Playback
|
|
142
|
+
resumePlayback: boolean;
|
|
143
|
+
resumeThreshold: number;
|
|
144
|
+
resumePrompt: boolean;
|
|
145
|
+
|
|
146
|
+
// Thumbnail Preview
|
|
147
|
+
thumbnailPreview: boolean;
|
|
148
|
+
thumbnailCacheSize: number;
|
|
149
|
+
thumbnailPregenerate: boolean;
|
|
150
|
+
thumbnailInterval: number;
|
|
151
|
+
thumbnailWidth: number;
|
|
152
|
+
thumbnailHeight: number;
|
|
153
|
+
thumbnailQuality: number;
|
|
154
|
+
|
|
155
|
+
// Lazy Loading
|
|
156
|
+
lazyInit: boolean;
|
|
157
|
+
lazyMargin: string;
|
|
158
|
+
|
|
159
|
+
// Theming
|
|
160
|
+
theme: 'dark' | 'light' | 'minimal' | 'high-contrast';
|
|
161
|
+
themeVariables: Record<string, string>;
|
|
162
|
+
|
|
163
|
+
// Streaming script URLs (allow consumers to pin / self-host)
|
|
164
|
+
hlsScriptUrl?: string;
|
|
165
|
+
hlsScriptIntegrity?: string;
|
|
166
|
+
dashScriptUrl?: string;
|
|
167
|
+
dashScriptIntegrity?: string;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Controls how metadata-cue directives (FOCUS:..., #hashtag) drive DOM
|
|
171
|
+
* side effects (focus() and metadata alerts). Opt-in — DOM mutation is
|
|
172
|
+
* disabled by default to keep cue-driven side effects from being a
|
|
173
|
+
* vector for caption-source authors.
|
|
174
|
+
*
|
|
175
|
+
* false — (default) emit `metadata:focus` / `metadata:hashtags`
|
|
176
|
+
* events, but never call .focus() or open alerts. Safe.
|
|
177
|
+
* 'container' — perform DOM side effects, but resolve selectors only
|
|
178
|
+
* against descendants of the player container.
|
|
179
|
+
* true | 'global' — legacy behavior: resolve selectors against the
|
|
180
|
+
* entire document. Useful for cross-page deep linking,
|
|
181
|
+
* but accepts content authors as trusted.
|
|
182
|
+
*/
|
|
183
|
+
metadataDirectives?: boolean | 'container' | 'global';
|
|
184
|
+
|
|
185
|
+
// Advanced
|
|
186
|
+
debug: boolean;
|
|
187
|
+
classPrefix: string;
|
|
188
|
+
iconType: string;
|
|
189
|
+
pauseOthersOnPlay: boolean;
|
|
190
|
+
|
|
191
|
+
// Callbacks
|
|
192
|
+
onReady: ((this: Player) => void) | null;
|
|
193
|
+
onPlay: ((this: Player) => void) | null;
|
|
194
|
+
onPause: ((this: Player) => void) | null;
|
|
195
|
+
onEnded: ((this: Player) => void) | null;
|
|
196
|
+
onTimeUpdate: ((this: Player, time: number) => void) | null;
|
|
197
|
+
onVolumeChange: ((this: Player, volume: number) => void) | null;
|
|
198
|
+
onError: ((this: Player, error: unknown) => void) | null;
|
|
199
|
+
}
|
package/src/types/renderer.ts
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import type { Player } from '../core/Player.js';
|
|
2
|
-
|
|
3
|
-
export interface QualityLevel {
|
|
4
|
-
name: string;
|
|
5
|
-
src?: string;
|
|
6
|
-
bitrate?: number;
|
|
7
|
-
height?: number;
|
|
8
|
-
width?: number;
|
|
9
|
-
index?: number;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface Renderer {
|
|
13
|
-
player: Player;
|
|
14
|
-
media: HTMLMediaElement;
|
|
15
|
-
|
|
16
|
-
/** Streaming engines, present on HLS / DASH renderers. */
|
|
17
|
-
hls?: HlsInstance | null;
|
|
18
|
-
dash?: DashMediaPlayerInstance | null;
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* True for renderers that drive playback through Media Source Extensions
|
|
22
|
-
* (dash.js, hls.js). The `<video>` element's `src` is a MediaSource blob
|
|
23
|
-
* URL that must not be copied to a second media element — otherwise Firefox
|
|
24
|
-
* emits a "may not load data from blob:" security warning. UI features such
|
|
25
|
-
* as scrub-bar thumbnail previews consult this flag to avoid cloning the src.
|
|
26
|
-
*/
|
|
27
|
-
readonly isStreaming?: boolean;
|
|
28
|
-
|
|
29
|
-
init(): Promise<void>;
|
|
30
|
-
play(): void;
|
|
31
|
-
pause(): void;
|
|
32
|
-
seek(time: number): void;
|
|
33
|
-
setVolume(volume: number): void;
|
|
34
|
-
setMuted(muted: boolean): void;
|
|
35
|
-
setPlaybackSpeed(speed: number): void;
|
|
36
|
-
destroy(): void;
|
|
37
|
-
|
|
38
|
-
ensureLoaded?(): void;
|
|
39
|
-
getQualities?(): QualityLevel[];
|
|
40
|
-
switchQuality?(index: number): void;
|
|
41
|
-
getCurrentQuality?(): number;
|
|
42
|
-
supportsAutoQuality?(): boolean;
|
|
43
|
-
isAutoQuality?(): boolean;
|
|
44
|
-
handlesOwnCaptions?(): boolean;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Ask the streaming renderer to activate the text track whose language
|
|
48
|
-
* matches `lang`, so segment downloads begin and cues become available.
|
|
49
|
-
* Returns true if the renderer switched, false if no match was found.
|
|
50
|
-
*/
|
|
51
|
-
activateTextTrackForLanguage?(lang: string): boolean;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Return absolute URLs for each text track so the transcript can fetch the
|
|
55
|
-
* complete VTT file instead of relying on partial segment-based cues.
|
|
56
|
-
*/
|
|
57
|
-
getTextTrackURLs?(): { lang: string; url: string }[];
|
|
58
|
-
}
|
|
1
|
+
import type { Player } from '../core/Player.js';
|
|
2
|
+
|
|
3
|
+
export interface QualityLevel {
|
|
4
|
+
name: string;
|
|
5
|
+
src?: string;
|
|
6
|
+
bitrate?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
width?: number;
|
|
9
|
+
index?: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface Renderer {
|
|
13
|
+
player: Player;
|
|
14
|
+
media: HTMLMediaElement;
|
|
15
|
+
|
|
16
|
+
/** Streaming engines, present on HLS / DASH renderers. */
|
|
17
|
+
hls?: HlsInstance | null;
|
|
18
|
+
dash?: DashMediaPlayerInstance | null;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* True for renderers that drive playback through Media Source Extensions
|
|
22
|
+
* (dash.js, hls.js). The `<video>` element's `src` is a MediaSource blob
|
|
23
|
+
* URL that must not be copied to a second media element — otherwise Firefox
|
|
24
|
+
* emits a "may not load data from blob:" security warning. UI features such
|
|
25
|
+
* as scrub-bar thumbnail previews consult this flag to avoid cloning the src.
|
|
26
|
+
*/
|
|
27
|
+
readonly isStreaming?: boolean;
|
|
28
|
+
|
|
29
|
+
init(): Promise<void>;
|
|
30
|
+
play(): void;
|
|
31
|
+
pause(): void;
|
|
32
|
+
seek(time: number): void;
|
|
33
|
+
setVolume(volume: number): void;
|
|
34
|
+
setMuted(muted: boolean): void;
|
|
35
|
+
setPlaybackSpeed(speed: number): void;
|
|
36
|
+
destroy(): void;
|
|
37
|
+
|
|
38
|
+
ensureLoaded?(): void;
|
|
39
|
+
getQualities?(): QualityLevel[];
|
|
40
|
+
switchQuality?(index: number): void;
|
|
41
|
+
getCurrentQuality?(): number;
|
|
42
|
+
supportsAutoQuality?(): boolean;
|
|
43
|
+
isAutoQuality?(): boolean;
|
|
44
|
+
handlesOwnCaptions?(): boolean;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Ask the streaming renderer to activate the text track whose language
|
|
48
|
+
* matches `lang`, so segment downloads begin and cues become available.
|
|
49
|
+
* Returns true if the renderer switched, false if no match was found.
|
|
50
|
+
*/
|
|
51
|
+
activateTextTrackForLanguage?(lang: string): boolean;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Return absolute URLs for each text track so the transcript can fetch the
|
|
55
|
+
* complete VTT file instead of relying on partial segment-based cues.
|
|
56
|
+
*/
|
|
57
|
+
getTextTrackURLs?(): { lang: string; url: string }[];
|
|
58
|
+
}
|