@gcorevideo/player 2.20.3 → 2.20.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/error-screen/error_screen.ejs +3 -1
- package/dist/core.js +436 -210
- package/dist/index.css +1223 -1223
- package/dist/index.js +580 -392
- package/dist/player.d.ts +10 -0
- package/dist/plugins/index.css +754 -754
- package/dist/plugins/index.js +122 -163
- package/docs/api/player.contextmenupluginsettings.label.md +3 -0
- package/docs/api/player.contextmenupluginsettings.md +8 -3
- package/docs/api/player.contextmenupluginsettings.preventshowcontextmenu.md +3 -0
- package/docs/api/player.contextmenupluginsettings.url.md +3 -0
- package/docs/api/player.md +6 -2
- package/docs/api/player.multicamera._constructor_.md +3 -0
- package/docs/api/player.multicamera.activebyid.md +3 -0
- package/docs/api/player.multicamera.attributes.md +3 -0
- package/docs/api/player.multicamera.bindevents.md +3 -0
- package/docs/api/player.multicamera.events.md +3 -0
- package/docs/api/player.multicamera.getcameraslist.md +3 -0
- package/docs/api/player.multicamera.getcurrentcamera.md +3 -0
- package/docs/api/player.multicamera.md +28 -1
- package/docs/api/player.multicamera.name.md +3 -0
- package/docs/api/player.multicamera.render.md +3 -0
- package/docs/api/player.multicamera.supportedversion.md +3 -0
- package/docs/api/player.multicamera.template.md +3 -0
- package/docs/api/player.multicamera.unbindevents.md +3 -0
- package/docs/api/player.multicamera.version.md +3 -0
- package/docs/api/player.volumefadeevents.md +7 -0
- package/docs/api/player.zeptoresult.md +1 -0
- package/lib/Player.d.ts +5 -3
- package/lib/Player.d.ts.map +1 -1
- package/lib/Player.js +32 -8
- package/lib/internal.types.d.ts +7 -7
- package/lib/internal.types.d.ts.map +1 -1
- package/lib/playback/BasePlayback.d.ts +11 -0
- package/lib/playback/BasePlayback.d.ts.map +1 -0
- package/lib/playback/BasePlayback.js +33 -0
- package/lib/playback/dash-playback/DashPlayback.d.ts +3 -2
- package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
- package/lib/playback/dash-playback/DashPlayback.js +7 -7
- package/lib/playback/hls-playback/HlsPlayback.d.ts +2 -2
- package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
- package/lib/playback/hls-playback/HlsPlayback.js +8 -5
- package/lib/playback/utils.d.ts +2 -0
- package/lib/playback/utils.d.ts.map +1 -0
- package/lib/playback/utils.js +1 -0
- package/lib/playback.types.d.ts +10 -3
- package/lib/playback.types.d.ts.map +1 -1
- package/lib/playback.types.js +3 -3
- package/lib/plugins/context-menu/ContextMenu.d.ts +4 -0
- package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
- package/lib/plugins/context-menu/ContextMenu.js +1 -2
- package/lib/plugins/error-screen/ErrorScreen.d.ts +39 -24
- package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
- package/lib/plugins/error-screen/ErrorScreen.js +70 -136
- package/lib/plugins/media-control/MediaControl.d.ts +1 -1
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +7 -5
- package/lib/plugins/multi-camera/MultiCamera.d.ts +1 -0
- package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
- package/lib/plugins/multi-camera/MultiCamera.js +5 -5
- package/lib/plugins/poster/Poster.js +1 -1
- package/lib/plugins/seek-time/SeekTime.js +1 -1
- package/lib/plugins/share/Share.js +1 -1
- package/lib/plugins/source-controller/SourceController.d.ts +2 -1
- package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
- package/lib/plugins/source-controller/SourceController.js +12 -6
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +2 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +19 -3
- package/lib/plugins/volume-fade/VolumeFade.d.ts +4 -0
- package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
- package/lib/plugins/volume-fade/VolumeFade.js +4 -0
- package/lib/testUtils.d.ts +66 -2
- package/lib/testUtils.d.ts.map +1 -1
- package/lib/testUtils.js +95 -2
- package/lib/types.d.ts +9 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/utils/types.d.ts +1 -0
- package/lib/utils/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/release_notes +297 -0
- package/src/Player.ts +103 -48
- package/src/__tests__/Player.test.ts +25 -4
- package/src/internal.types.ts +86 -79
- package/src/playback/BasePlayback.ts +41 -0
- package/src/playback/dash-playback/DashPlayback.ts +11 -15
- package/src/playback/hls-playback/HlsPlayback.ts +7 -5
- package/src/playback/utils.ts +2 -0
- package/src/playback.types.ts +11 -3
- package/src/plugins/context-menu/ContextMenu.ts +5 -2
- package/src/plugins/error-screen/ErrorScreen.ts +121 -195
- package/src/plugins/error-screen/__tests__/ErrorScreen.test.ts +113 -0
- package/src/plugins/error-screen/__tests__/__snapshots__/ErrorScreen.test.ts.snap +20 -0
- package/src/plugins/level-selector/__tests__/LevelSelector.test.ts +32 -57
- package/src/plugins/media-control/MediaControl.ts +8 -5
- package/src/plugins/multi-camera/MultiCamera.ts +5 -5
- package/src/plugins/poster/Poster.ts +1 -1
- package/src/plugins/seek-time/SeekTime.ts +1 -1
- package/src/plugins/share/Share.ts +1 -1
- package/src/plugins/source-controller/SourceController.ts +20 -14
- package/src/plugins/source-controller/__tests__/SourceController.test.ts +29 -46
- package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +20 -3
- package/src/plugins/volume-fade/VolumeFade.ts +4 -0
- package/src/testUtils.ts +100 -3
- package/src/types.ts +11 -1
- package/src/utils/types.ts +1 -0
- package/temp/player.api.json +24 -24
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
## MultiCamera class
|
|
6
6
|
|
|
7
|
+
> This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
|
|
8
|
+
>
|
|
9
|
+
|
|
7
10
|
The plugin adds support for loading multiple streams and switching between them using the media control UI.
|
|
8
11
|
|
|
9
12
|
**Signature:**
|
|
@@ -41,7 +44,7 @@ Description
|
|
|
41
44
|
|
|
42
45
|
</td><td>
|
|
43
46
|
|
|
44
|
-
Constructs a new instance of the `MultiCamera` class
|
|
47
|
+
**_(BETA)_** Constructs a new instance of the `MultiCamera` class
|
|
45
48
|
|
|
46
49
|
|
|
47
50
|
</td></tr>
|
|
@@ -87,6 +90,8 @@ Description
|
|
|
87
90
|
|
|
88
91
|
</td><td>
|
|
89
92
|
|
|
93
|
+
**_(BETA)_**
|
|
94
|
+
|
|
90
95
|
|
|
91
96
|
</td></tr>
|
|
92
97
|
<tr><td>
|
|
@@ -106,6 +111,8 @@ Description
|
|
|
106
111
|
|
|
107
112
|
</td><td>
|
|
108
113
|
|
|
114
|
+
**_(BETA)_**
|
|
115
|
+
|
|
109
116
|
|
|
110
117
|
</td></tr>
|
|
111
118
|
<tr><td>
|
|
@@ -125,6 +132,8 @@ string
|
|
|
125
132
|
|
|
126
133
|
</td><td>
|
|
127
134
|
|
|
135
|
+
**_(BETA)_**
|
|
136
|
+
|
|
128
137
|
|
|
129
138
|
</td></tr>
|
|
130
139
|
<tr><td>
|
|
@@ -144,6 +153,8 @@ string
|
|
|
144
153
|
|
|
145
154
|
</td><td>
|
|
146
155
|
|
|
156
|
+
**_(BETA)_**
|
|
157
|
+
|
|
147
158
|
|
|
148
159
|
</td></tr>
|
|
149
160
|
<tr><td>
|
|
@@ -163,6 +174,8 @@ any
|
|
|
163
174
|
|
|
164
175
|
</td><td>
|
|
165
176
|
|
|
177
|
+
**_(BETA)_**
|
|
178
|
+
|
|
166
179
|
|
|
167
180
|
</td></tr>
|
|
168
181
|
<tr><td>
|
|
@@ -184,6 +197,8 @@ string
|
|
|
184
197
|
|
|
185
198
|
</td><td>
|
|
186
199
|
|
|
200
|
+
**_(BETA)_**
|
|
201
|
+
|
|
187
202
|
|
|
188
203
|
</td></tr>
|
|
189
204
|
</tbody></table>
|
|
@@ -216,6 +231,8 @@ Description
|
|
|
216
231
|
|
|
217
232
|
</td><td>
|
|
218
233
|
|
|
234
|
+
**_(BETA)_**
|
|
235
|
+
|
|
219
236
|
|
|
220
237
|
</td></tr>
|
|
221
238
|
<tr><td>
|
|
@@ -228,6 +245,8 @@ Description
|
|
|
228
245
|
|
|
229
246
|
</td><td>
|
|
230
247
|
|
|
248
|
+
**_(BETA)_**
|
|
249
|
+
|
|
231
250
|
|
|
232
251
|
</td></tr>
|
|
233
252
|
<tr><td>
|
|
@@ -240,6 +259,8 @@ Description
|
|
|
240
259
|
|
|
241
260
|
</td><td>
|
|
242
261
|
|
|
262
|
+
**_(BETA)_**
|
|
263
|
+
|
|
243
264
|
|
|
244
265
|
</td></tr>
|
|
245
266
|
<tr><td>
|
|
@@ -252,6 +273,8 @@ Description
|
|
|
252
273
|
|
|
253
274
|
</td><td>
|
|
254
275
|
|
|
276
|
+
**_(BETA)_**
|
|
277
|
+
|
|
255
278
|
|
|
256
279
|
</td></tr>
|
|
257
280
|
<tr><td>
|
|
@@ -264,6 +287,8 @@ Description
|
|
|
264
287
|
|
|
265
288
|
</td><td>
|
|
266
289
|
|
|
290
|
+
**_(BETA)_**
|
|
291
|
+
|
|
267
292
|
|
|
268
293
|
</td></tr>
|
|
269
294
|
<tr><td>
|
|
@@ -276,6 +301,8 @@ Description
|
|
|
276
301
|
|
|
277
302
|
</td><td>
|
|
278
303
|
|
|
304
|
+
**_(BETA)_**
|
|
305
|
+
|
|
279
306
|
|
|
280
307
|
</td></tr>
|
|
281
308
|
</tbody></table>
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
## VolumeFadeEvents enum
|
|
6
6
|
|
|
7
|
+
> This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
|
|
8
|
+
>
|
|
9
|
+
|
|
10
|
+
Events emitted by the VolumeFade plugin.
|
|
11
|
+
|
|
7
12
|
**Signature:**
|
|
8
13
|
|
|
9
14
|
```typescript
|
|
@@ -40,6 +45,8 @@ FADE
|
|
|
40
45
|
|
|
41
46
|
</td><td>
|
|
42
47
|
|
|
48
|
+
**_(BETA)_**
|
|
49
|
+
|
|
43
50
|
|
|
44
51
|
</td></tr>
|
|
45
52
|
</tbody></table>
|
package/lib/Player.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ContainerSize,
|
|
1
|
+
import type { ContainerSize, PlayerPluginConstructor } from './types.js';
|
|
2
2
|
import { PlayerConfig, PlayerEvent } from './types.js';
|
|
3
3
|
import { PlaybackError, TimePosition } from './playback.types.js';
|
|
4
4
|
/**
|
|
@@ -186,12 +186,14 @@ export declare class Player {
|
|
|
186
186
|
* Player.registerPlugin(MyPlugin)
|
|
187
187
|
* ```
|
|
188
188
|
*/
|
|
189
|
-
static registerPlugin(plugin:
|
|
189
|
+
static registerPlugin(plugin: PlayerPluginConstructor): void;
|
|
190
|
+
private static getRegisteredPlugins;
|
|
191
|
+
private static corePlugins;
|
|
190
192
|
/**
|
|
191
193
|
* Unregisters a plugin registered earlier with {@link Player.registerPlugin}.
|
|
192
194
|
* @param plugin - a plugin class
|
|
193
195
|
*/
|
|
194
|
-
static unregisterPlugin(plugin:
|
|
196
|
+
static unregisterPlugin(plugin: PlayerPluginConstructor): void;
|
|
195
197
|
private setConfig;
|
|
196
198
|
private initPlayer;
|
|
197
199
|
private tuneIn;
|
package/lib/Player.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"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"}
|
package/lib/Player.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Browser, Events as ClapprEvents, Log, Player as PlayerClappr, $, Loader, } from '@clappr/core';
|
|
2
2
|
import { reportError, trace } from '@gcorevideo/utils';
|
|
3
3
|
import assert from 'assert';
|
|
4
|
-
import
|
|
4
|
+
import EventEmitter from 'eventemitter3';
|
|
5
5
|
import { PlayerEvent } from './types.js';
|
|
6
|
-
import { buildMediaSourcesList, wrapSource
|
|
6
|
+
import { buildMediaSourcesList, wrapSource } from './utils/mediaSources.js';
|
|
7
7
|
import { registerPlaybacks } from './playback/index.js';
|
|
8
8
|
const T = 'GPlayer';
|
|
9
9
|
const DEFAULT_OPTIONS = {
|
|
@@ -26,7 +26,7 @@ const DEFAULT_OPTIONS = {
|
|
|
26
26
|
*/
|
|
27
27
|
export class Player {
|
|
28
28
|
config = DEFAULT_OPTIONS;
|
|
29
|
-
emitter = new
|
|
29
|
+
emitter = new EventEmitter();
|
|
30
30
|
player = null;
|
|
31
31
|
ready = false;
|
|
32
32
|
rootNode = null;
|
|
@@ -99,7 +99,7 @@ export class Player {
|
|
|
99
99
|
Log.setLevel(0);
|
|
100
100
|
}
|
|
101
101
|
const coreOpts = this.buildCoreOptions(playerElement);
|
|
102
|
-
const { core, container } =
|
|
102
|
+
const { core, container } = Player.getRegisteredPlugins();
|
|
103
103
|
trace(`${T} init`, {
|
|
104
104
|
registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.name),
|
|
105
105
|
});
|
|
@@ -261,13 +261,35 @@ export class Player {
|
|
|
261
261
|
* ```
|
|
262
262
|
*/
|
|
263
263
|
static registerPlugin(plugin) {
|
|
264
|
+
assert.ok(plugin.type === 'core' || plugin.type === 'container', 'Invalid plugin type');
|
|
265
|
+
if (plugin.type === 'core') {
|
|
266
|
+
if (plugin.prototype.name === 'media_control') {
|
|
267
|
+
Player.corePlugins.unshift(plugin);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
Player.corePlugins.push(plugin);
|
|
271
|
+
}
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
264
274
|
Loader.registerPlugin(plugin);
|
|
265
275
|
}
|
|
276
|
+
static getRegisteredPlugins() {
|
|
277
|
+
for (const plugin of Player.corePlugins) {
|
|
278
|
+
Loader.registerPlugin(plugin);
|
|
279
|
+
}
|
|
280
|
+
return Loader.registeredPlugins;
|
|
281
|
+
}
|
|
282
|
+
static corePlugins = [];
|
|
266
283
|
/**
|
|
267
284
|
* Unregisters a plugin registered earlier with {@link Player.registerPlugin}.
|
|
268
285
|
* @param plugin - a plugin class
|
|
269
286
|
*/
|
|
270
287
|
static unregisterPlugin(plugin) {
|
|
288
|
+
assert.ok(plugin.type === 'core' || plugin.type === 'container', 'Invalid plugin type');
|
|
289
|
+
if (plugin.type === 'core') {
|
|
290
|
+
Player.corePlugins = Player.corePlugins.filter((p) => p !== plugin);
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
271
293
|
Loader.unregisterPlugin(plugin);
|
|
272
294
|
}
|
|
273
295
|
setConfig(config) {
|
|
@@ -408,8 +430,10 @@ export class Player {
|
|
|
408
430
|
}, null);
|
|
409
431
|
}
|
|
410
432
|
bindCoreListeners() {
|
|
411
|
-
|
|
412
|
-
|
|
433
|
+
// TODO create an class inherited from PlayerClappr
|
|
434
|
+
assert.ok(this.player, 'Player is not initialized');
|
|
435
|
+
const core = this.player.core;
|
|
436
|
+
core.on(ClapprEvents.CORE_SCREEN_ORIENTATION_CHANGED, ({ orientation }) => {
|
|
413
437
|
trace(`${T} on CORE_SCREEN_ORIENTATION_CHANGED`, {
|
|
414
438
|
orientation,
|
|
415
439
|
rootNode: {
|
|
@@ -424,14 +448,14 @@ export class Player {
|
|
|
424
448
|
});
|
|
425
449
|
}
|
|
426
450
|
}, null);
|
|
427
|
-
core
|
|
451
|
+
core.on(ClapprEvents.CORE_RESIZE, ({ width, height }) => {
|
|
428
452
|
trace(`${T} on CORE_RESIZE`, {
|
|
429
453
|
width,
|
|
430
454
|
height,
|
|
431
455
|
});
|
|
432
456
|
this.safeTriggerEvent(PlayerEvent.Resize, { width, height });
|
|
433
457
|
}, null);
|
|
434
|
-
core
|
|
458
|
+
core.on(ClapprEvents.CORE_FULLSCREEN, (isFullscreen) => {
|
|
435
459
|
trace(`${T} CORE_FULLSCREEN`, {
|
|
436
460
|
isFullscreen,
|
|
437
461
|
});
|
package/lib/internal.types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { CorePlugin,
|
|
2
|
-
import { ContainerSize, PlaybackType, PlayerDebugTag, PlayerMediaSource } from
|
|
3
|
-
import { PlaybackError } from
|
|
1
|
+
import type { CorePlugin, Playback as ClapprPlayback } from '@clappr/core';
|
|
2
|
+
import { ContainerSize, PlaybackType, PlayerDebugTag, PlayerMediaSource, type CorePluginConstructor, type ContainerPluginConstructor } from './types';
|
|
3
|
+
import { PlaybackError } from './playback.types.js';
|
|
4
4
|
type ExternalTrack = {
|
|
5
|
-
kind?:
|
|
5
|
+
kind?: 'subtitles' | 'captions';
|
|
6
6
|
src: string;
|
|
7
7
|
label: string;
|
|
8
8
|
lang: string;
|
|
@@ -65,8 +65,8 @@ export type PlaybackPluginFactory = typeof ClapprPlayback;
|
|
|
65
65
|
* @internal
|
|
66
66
|
*/
|
|
67
67
|
export type CorePluginOptions = {
|
|
68
|
-
core?:
|
|
69
|
-
container?:
|
|
68
|
+
core?: CorePluginConstructor[];
|
|
69
|
+
container?: ContainerPluginConstructor[];
|
|
70
70
|
playback?: PlaybackPluginFactory[];
|
|
71
71
|
loadExternalPluginsFirst?: boolean;
|
|
72
72
|
loadExternalPlaybacksFirst?: boolean;
|
|
@@ -100,7 +100,7 @@ export type CoreOptions = {
|
|
|
100
100
|
mimeType?: string;
|
|
101
101
|
mute?: boolean;
|
|
102
102
|
persistConfig?: boolean;
|
|
103
|
-
preload?:
|
|
103
|
+
preload?: 'auto' | 'metadata' | 'none';
|
|
104
104
|
parentId?: string;
|
|
105
105
|
parent?: HTMLElement;
|
|
106
106
|
playback?: CorePlaybackConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.types.d.ts","sourceRoot":"","sources":["../src/internal.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,
|
|
1
|
+
{"version":3,"file":"internal.types.d.ts","sourceRoot":"","sources":["../src/internal.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ErrorOptions, HTML5Video } from '@clappr/core';
|
|
2
|
+
/**
|
|
3
|
+
* This class adds common behaviors to all playback modules.
|
|
4
|
+
* @internal
|
|
5
|
+
* TODO use custom HTML5Video playback with this layer applied
|
|
6
|
+
*/
|
|
7
|
+
export declare class BasePlayback extends HTML5Video {
|
|
8
|
+
createError(errorData: any, options?: ErrorOptions): Error;
|
|
9
|
+
_onProgress(): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=BasePlayback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BasePlayback.d.ts","sourceRoot":"","sources":["../../src/playback/BasePlayback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,UAAU,EAAe,MAAM,cAAc,CAAA;AAI5E;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IA0BzC,WAAW;CAIrB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Events, HTML5Video, PlayerError } from '@clappr/core';
|
|
2
|
+
import { PlaybackErrorCode } from '../playback.types.js';
|
|
3
|
+
/**
|
|
4
|
+
* This class adds common behaviors to all playback modules.
|
|
5
|
+
* @internal
|
|
6
|
+
* TODO use custom HTML5Video playback with this layer applied
|
|
7
|
+
*/
|
|
8
|
+
export class BasePlayback extends HTML5Video {
|
|
9
|
+
createError(errorData, options) {
|
|
10
|
+
const i18n = this.i18n ||
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
(this.core && this.core.i18n) ||
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
(this.container && this.container.i18n);
|
|
15
|
+
if (i18n &&
|
|
16
|
+
!errorData.UI &&
|
|
17
|
+
errorData.code === PlaybackErrorCode.MediaSourceUnavailable) {
|
|
18
|
+
const defaultUI = {
|
|
19
|
+
title: i18n.t('no_broadcast'),
|
|
20
|
+
message: '',
|
|
21
|
+
};
|
|
22
|
+
errorData.UI = defaultUI;
|
|
23
|
+
}
|
|
24
|
+
if (errorData.level === PlayerError.Levels.FATAL) {
|
|
25
|
+
this.trigger(Events.PLAYBACK_MEDIACONTROL_DISABLE);
|
|
26
|
+
}
|
|
27
|
+
return super.createError(errorData, options);
|
|
28
|
+
}
|
|
29
|
+
_onProgress() {
|
|
30
|
+
super._onProgress();
|
|
31
|
+
this.trigger(Events.PLAYBACK_MEDIACONTROL_ENABLE);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Playback } from '@clappr/core';
|
|
2
2
|
import DASHJS, { type BitrateInfo as DashBitrateInfo, IManifestInfo } from 'dashjs';
|
|
3
3
|
import { QualityLevel, TimePosition, TimeValue } from '../../playback.types.js';
|
|
4
|
+
import { BasePlayback } from '../BasePlayback.js';
|
|
4
5
|
type PlaybackType = typeof Playback.VOD | typeof Playback.LIVE | typeof Playback.AOD | typeof Playback.NO_OP;
|
|
5
6
|
type PlaylistType = string;
|
|
6
7
|
type LocalTimeCorrelation = {
|
|
7
8
|
local: number;
|
|
8
9
|
remote: number;
|
|
9
10
|
};
|
|
10
|
-
export default class DashPlayback extends
|
|
11
|
+
export default class DashPlayback extends BasePlayback {
|
|
11
12
|
_levels: QualityLevel[] | null;
|
|
12
13
|
_currentLevel: number | null;
|
|
13
14
|
_durationExcludesAfterLiveSyncPoint: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
// Copyright 2014 Globo.com Player authors. All rights reserved.
|
|
2
2
|
// Use of this source code is governed by a BSD-style
|
|
3
3
|
// license that can be found in the LICENSE file.
|
|
4
|
-
import { Events,
|
|
4
|
+
import { Events, Log, Playback, PlayerError, Utils, $ } from '@clappr/core';
|
|
5
5
|
import { trace } from '@gcorevideo/utils';
|
|
6
6
|
import assert from 'assert';
|
|
7
7
|
import DASHJS from 'dashjs';
|
|
8
8
|
import { PlaybackErrorCode, } from '../../playback.types.js';
|
|
9
9
|
import { isDashSource } from '../../utils/mediaSources.js';
|
|
10
|
+
import { BasePlayback } from '../BasePlayback.js';
|
|
10
11
|
const AUTO = -1;
|
|
11
12
|
const { now } = Utils;
|
|
12
13
|
const T = 'playback.dash';
|
|
13
14
|
// @ts-expect-error
|
|
14
|
-
export default class DashPlayback extends
|
|
15
|
+
export default class DashPlayback extends BasePlayback {
|
|
15
16
|
_levels = null;
|
|
16
17
|
_currentLevel = null;
|
|
17
18
|
// true when the actual duration is longer than hlsjs's live sync point
|
|
@@ -318,11 +319,10 @@ export default class DashPlayback extends HTML5Video {
|
|
|
318
319
|
};
|
|
319
320
|
triggerError(error) {
|
|
320
321
|
trace(`${T} triggerError`, { error });
|
|
321
|
-
this
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
});
|
|
322
|
+
// this triggers Events.ERROR to be handled by the UI
|
|
323
|
+
this.trigger(Events.PLAYBACK_ERROR, this.createError(error, {
|
|
324
|
+
useCodePrefix: false,
|
|
325
|
+
}));
|
|
326
326
|
// only reset the dash player in 10ms async, so that the rest of the
|
|
327
327
|
// calling function finishes
|
|
328
328
|
setTimeout(() => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { HTML5Video } from '@clappr/core';
|
|
2
1
|
import HLSJS, { Events as HlsEvents, type ErrorData as HlsErrorData, type FragChangedData, type FragLoadedData, type FragParsingMetadataData, type LevelSwitchingData } from 'hls.js';
|
|
3
2
|
import { PlaybackError, QualityLevel } from '../../playback.types.js';
|
|
4
3
|
import { PlaybackType } from '../../types.js';
|
|
5
|
-
|
|
4
|
+
import { BasePlayback } from '../BasePlayback.js';
|
|
5
|
+
export default class HlsPlayback extends BasePlayback {
|
|
6
6
|
private _ccIsSetup;
|
|
7
7
|
private _ccTracksUpdated;
|
|
8
8
|
private _currentFragment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
// Copyright 2014 Globo.com Player authors. All rights reserved.
|
|
2
2
|
// Use of this source code is governed by a BSD-style
|
|
3
|
-
// license that can be found
|
|
4
|
-
import { Events,
|
|
3
|
+
// license that can be found on https://github.com/clappr/hlsjs-playback/blob/main/LICENSE
|
|
4
|
+
import { Events, Log, Playback, PlayerError, Utils, $, } from '@clappr/core';
|
|
5
5
|
import { trace } from '@gcorevideo/utils';
|
|
6
6
|
import assert from 'assert';
|
|
7
7
|
import HLSJS from 'hls.js';
|
|
8
8
|
import { PlaybackErrorCode, } from '../../playback.types.js';
|
|
9
9
|
import { isHlsSource } from '../../utils/mediaSources.js';
|
|
10
|
+
import { BasePlayback } from '../BasePlayback.js';
|
|
10
11
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
11
|
-
const { now
|
|
12
|
+
const { now } = Utils;
|
|
12
13
|
const AUTO = -1;
|
|
13
14
|
const DEFAULT_RECOVER_ATTEMPTS = 16;
|
|
14
15
|
Events.register('PLAYBACK_FRAGMENT_CHANGED');
|
|
15
16
|
Events.register('PLAYBACK_FRAGMENT_PARSING_METADATA');
|
|
16
17
|
const T = 'playback.hls';
|
|
17
18
|
// @ts-expect-error
|
|
18
|
-
export default class HlsPlayback extends
|
|
19
|
+
export default class HlsPlayback extends BasePlayback {
|
|
19
20
|
_ccIsSetup = false;
|
|
20
21
|
_ccTracksUpdated = false;
|
|
21
22
|
_currentFragment = null;
|
|
@@ -821,7 +822,9 @@ export default class HlsPlayback extends HTML5Video {
|
|
|
821
822
|
return this._playbackType === Playback.VOD || this.dvrEnabled;
|
|
822
823
|
}
|
|
823
824
|
triggerError(error) {
|
|
824
|
-
this.trigger(Events.PLAYBACK_ERROR, error
|
|
825
|
+
this.trigger(Events.PLAYBACK_ERROR, this.createError(error, {
|
|
826
|
+
useCodePrefix: false,
|
|
827
|
+
}));
|
|
825
828
|
this.stop();
|
|
826
829
|
}
|
|
827
830
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/playback/utils.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|