@gcorevideo/player 2.17.0 → 2.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +182 -109
- package/dist/player.d.ts +150 -24
- package/docs/api/player.containersize.md +19 -0
- package/docs/api/player.dashsettings.md +2 -0
- package/docs/api/player.errorlevel.md +1 -0
- package/docs/api/player.langtag.md +6 -0
- package/docs/api/player.md +57 -22
- package/docs/api/player.mediatransport.md +1 -0
- package/docs/api/player.playbackerror.code.md +2 -0
- package/docs/api/player.playbackerror.description.md +2 -0
- package/docs/api/player.playbackerror.level.md +2 -0
- package/docs/api/player.playbackerror.md +43 -4
- package/docs/api/player.playbackerror.message.md +2 -0
- package/docs/api/player.playbackerror.origin.md +21 -0
- package/docs/api/player.playbackerror.scope.md +16 -0
- package/docs/api/player.playbackerrorcode.md +4 -3
- package/docs/api/player.playbackmodule.md +1 -0
- package/docs/api/player.player.isdvrinuse.md +24 -0
- package/docs/api/player.player.isplaying.md +1 -1
- package/docs/api/player.player.md +15 -1
- package/docs/api/player.player.off.md +4 -4
- package/docs/api/player.player.on.md +5 -5
- package/docs/api/player.player.resize.md +3 -6
- package/docs/api/player.playercomponenttype.md +16 -0
- package/docs/api/player.playerdebugsettings.md +1 -1
- package/docs/api/player.playerdebugtag.md +1 -0
- package/docs/api/player.playerevent.md +96 -0
- package/docs/api/player.playereventhandler.md +3 -2
- package/docs/api/player.playereventparams.md +20 -0
- package/docs/api/player.playermediasourcedesc.md +1 -1
- package/docs/api/player.playermediasourcedesc.mimetype.md +1 -1
- package/docs/api/player.qualitylevel.bitrate.md +16 -0
- package/docs/api/player.qualitylevel.height.md +16 -0
- package/docs/api/player.qualitylevel.level.md +16 -0
- package/docs/api/player.qualitylevel.md +104 -7
- package/docs/api/player.qualitylevel.width.md +16 -0
- package/docs/api/player.timeposition.current.md +16 -0
- package/docs/api/player.timeposition.md +65 -7
- package/docs/api/player.timeposition.total.md +16 -0
- package/docs/api/player.timevalue.md +1 -1
- package/docs/api/player.translationsettings.md +7 -1
- package/docs/api/player.transportpreference.md +1 -0
- package/lib/Player.d.ts +30 -14
- package/lib/Player.d.ts.map +1 -1
- package/lib/Player.js +72 -65
- package/lib/internal.types.d.ts +3 -5
- package/lib/internal.types.d.ts.map +1 -1
- package/lib/playback/dash-playback/DashPlayback.d.ts +2 -0
- package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
- package/lib/playback/dash-playback/DashPlayback.js +37 -25
- package/lib/playback/hls-playback/HlsPlayback.d.ts +3 -0
- package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
- package/lib/playback/hls-playback/HlsPlayback.js +33 -18
- package/lib/playback.types.d.ts +65 -6
- package/lib/playback.types.d.ts.map +1 -1
- package/lib/playback.types.js +10 -0
- package/lib/types.d.ts +54 -5
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +31 -2
- package/package.json +1 -1
- package/src/Player.ts +109 -78
- package/src/internal.types.ts +3 -2
- package/src/playback/dash-playback/DashPlayback.ts +64 -35
- package/src/playback/hls-playback/HlsPlayback.ts +46 -22
- package/src/playback.types.ts +65 -5
- package/src/types.ts +56 -6
- package/temp/player.api.json +611 -87
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/DashPlayback-BRJzl8D8.js +0 -901
|
@@ -66,8 +66,10 @@ export default class DashPlayback extends HTML5Video {
|
|
|
66
66
|
_updatePlaybackType(): void;
|
|
67
67
|
_fillLevels(levels: DashBitrateInfo[]): void;
|
|
68
68
|
private onLevelSwitch;
|
|
69
|
+
private onLevelSwitchEnd;
|
|
69
70
|
getPlaybackType(): string;
|
|
70
71
|
isSeekEnabled(): boolean;
|
|
72
|
+
private getLevel;
|
|
71
73
|
}
|
|
72
74
|
export {};
|
|
73
75
|
//# sourceMappingURL=DashPlayback.d.ts.map
|
|
@@ -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":"AAIA,OAAO,EAEL,UAAU,EAEV,QAAQ,EAIT,MAAM,cAAc,CAAA;AAGrB,OAAO,MAAM,EAAE,EAIb,KAAK,WAAW,IAAI,eAAe,EAEnC,aAAa,EACd,MAAM,QAAQ,CAAA;AAEf,OAAO,EAIL,YAAY,EACZ,YAAY,EAEZ,SAAS,EACV,MAAM,yBAAyB,CAAA;AAOhC,KAAK,YAAY,GACb,OAAO,QAAQ,CAAC,GAAG,GACnB,OAAO,QAAQ,CAAC,IAAI,GACpB,OAAO,QAAQ,CAAC,GAAG,GACnB,OAAO,QAAQ,CAAC,KAAK,CAAA;AAEzB,KAAK,YAAY,GAAG,MAAM,CAAA;AAE1B,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAKD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,UAAU;IAClD,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAO;IAErC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAO;IAKnC,mCAAmC,EAAE,OAAO,CAAQ;IAEpD,aAAa,EAAE,OAAO,CAAQ;IAI9B,uBAAuB,EAAE,MAAM,CAAI;IASnC,wBAAwB,EAAE,MAAM,CAAI;IAEpC,aAAa,EAAE,YAAY,CAAe;IAG1C,aAAa,EAAE,YAAY,GAAG,IAAI,CAAO;IAGzC,gBAAgB,EAAE,SAAS,CAAI;IAE/B,KAAK,EAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAO;IAE5C,2BAA2B,EAAE,MAAM,CAAI;IAEvC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAO;IAEtC,eAAe,EAAE,YAAY,CAA2B;IAIxD,0BAA0B,EAAE,oBAAoB,GAAG,IAAI,CAAO;IAI9D,wBAAwB,EAAE,oBAAoB,GAAG,IAAI,CAAO;IAE5D,kBAAkB,UAAQ;IAE1B,YAAY,EAAE,aAAa,GAAG,IAAI,CAAO;IAEzC,gBAAgB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAO;IAE9D,IAAI,IAAI,WAEP;IAED,IAAI,MAAM,IAAI,YAAY,EAAE,CAE3B;IAED,IAAI,YAAY,IAAI,MAAM,CAMzB;IAED,IAAI,OAAO,YAEV;IAED,IAAI,YAAY,CAAC,EAAE,EAAE,MAAM,EAoC1B;IAED,IAAI,UAAU,WASb;IAED,IAAI,IAAI,WAEP;IAID,IAAI,sBAAsB,WAczB;IAID,IAAI,oBAAoB,WAgBvB;IAED,IAAI,SAAS,WAKZ;gBAEW,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG;IAOzD,MAAM;IAqEN,MAAM;IAMN,MAAM;YAMW,SAAS;IAI1B,qBAAqB;IAQrB,oBAAoB;IAMpB,kBAAkB;IAOlB,WAAW,IAAI,SAAS;IAQxB,cAAc,IAAI,SAAS;IAO3B,kBAAkB,IAAI,SAAS;IAI/B,cAAc,CAAC,UAAU,EAAE,MAAM;IAejC,IAAI,CAAC,IAAI,EAAE,SAAS;IAgBpB,eAAe;IAIf,UAAU,CAAC,MAAM,EAAE,OAAO;IAKjB,eAAe;IAgBxB,OAAO,CAAC,gBAAgB,CAGvB;IAED,OAAO,CAAC,eAAe,CAmCtB;IAED,OAAO,CAAC,YAAY;IAgBpB,aAAa;IAqBb,iBAAiB;IAWjB,IAAI,UAAU,YASb;IAED,WAAW;IAmBX,IAAI;IAUJ,KAAK;IAWL,IAAI;IASJ,OAAO;IAkBP,mBAAmB;IAYnB,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE;IAarC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAQxB,eAAe;IAIf,aAAa;IAIb,OAAO,CAAC,QAAQ;CAKjB"}
|
|
@@ -1,11 +1,11 @@
|
|
|
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, HTML5Video, Log, Playback, PlayerError, Utils } from '@clappr/core';
|
|
4
|
+
import { Events, HTML5Video, 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
|
-
import { PlaybackErrorCode } from '../../playback.types.js';
|
|
8
|
+
import { PlaybackErrorCode, } from '../../playback.types.js';
|
|
9
9
|
import { isDashSource } from '../../utils/mediaSources.js';
|
|
10
10
|
const AUTO = -1;
|
|
11
11
|
const { now } = Utils;
|
|
@@ -69,13 +69,15 @@ export default class DashPlayback extends HTML5Video {
|
|
|
69
69
|
this.trigger(Events.PLAYBACK_LEVEL_SWITCH_START);
|
|
70
70
|
assert.ok(this._dash, 'An instance of dashjs MediaPlayer is required to switch levels');
|
|
71
71
|
const dash = this._dash;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
const settings = $.extend(true, {}, this.options.dash, {
|
|
73
|
+
streaming: {
|
|
74
|
+
abr: {
|
|
75
|
+
autoSwitchBitrate: {
|
|
76
|
+
video: id === -1,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
});
|
|
79
81
|
dash.updateSettings(settings);
|
|
80
82
|
if (id !== -1) {
|
|
81
83
|
this._dash.setQualityFor('video', id);
|
|
@@ -143,16 +145,14 @@ export default class DashPlayback extends HTML5Video {
|
|
|
143
145
|
this._dash.initialize();
|
|
144
146
|
if (this.options.dash) {
|
|
145
147
|
// TODO use $.extend
|
|
146
|
-
const settings =
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
this._dash.updateSettings(this.options.dash);
|
|
148
|
+
const settings = $.extend({}, this.options.dash, {
|
|
149
|
+
streaming: {
|
|
150
|
+
text: {
|
|
151
|
+
defaultEnabled: false,
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
});
|
|
155
|
+
this._dash.updateSettings(settings);
|
|
156
156
|
}
|
|
157
157
|
this._dash.attachView(this.el);
|
|
158
158
|
this._dash.setAutoPlay(false);
|
|
@@ -164,13 +164,14 @@ export default class DashPlayback extends HTML5Video {
|
|
|
164
164
|
this._updatePlaybackType();
|
|
165
165
|
this._fillLevels(bitrates);
|
|
166
166
|
dash.on(DASHJS.MediaPlayer.events.QUALITY_CHANGE_REQUESTED, (evt) => {
|
|
167
|
-
|
|
168
|
-
assert.ok(this._levels, 'An array of levels is required to change quality');
|
|
169
|
-
const newLevel = this._levels.find((level) => level.level === evt.newQuality); // TODO or simply this._levels[evt.newQuality]?
|
|
170
|
-
assert.ok(newLevel, 'A valid level is required to change quality');
|
|
167
|
+
const newLevel = this.getLevel(evt.newQuality);
|
|
171
168
|
this.onLevelSwitch(newLevel);
|
|
172
169
|
});
|
|
173
170
|
});
|
|
171
|
+
this._dash.on(DASHJS.MediaPlayer.events.QUALITY_CHANGE_RENDERED, (evt) => {
|
|
172
|
+
const currentLevel = this.getLevel(evt.newQuality);
|
|
173
|
+
this.onLevelSwitchEnd(currentLevel);
|
|
174
|
+
});
|
|
174
175
|
this._dash.on(DASHJS.MediaPlayer.events.METRIC_ADDED, (e) => {
|
|
175
176
|
// Listen for the first manifest request in order to update player UI
|
|
176
177
|
if (e.metric === 'DVRInfo') {
|
|
@@ -314,7 +315,11 @@ export default class DashPlayback extends HTML5Video {
|
|
|
314
315
|
};
|
|
315
316
|
triggerError(error) {
|
|
316
317
|
trace(`${T} triggerError`, { error });
|
|
317
|
-
this.trigger(Events.PLAYBACK_ERROR,
|
|
318
|
+
this.trigger(Events.PLAYBACK_ERROR, {
|
|
319
|
+
...error,
|
|
320
|
+
origin: this.name,
|
|
321
|
+
scope: DashPlayback.type,
|
|
322
|
+
});
|
|
318
323
|
// only reset the dash player in 10ms async, so that the rest of the
|
|
319
324
|
// calling function finishes
|
|
320
325
|
setTimeout(() => {
|
|
@@ -429,8 +434,10 @@ export default class DashPlayback extends HTML5Video {
|
|
|
429
434
|
onLevelSwitch(currentLevel) {
|
|
430
435
|
// TODO check the two below
|
|
431
436
|
this.trigger(Events.PLAYBACK_LEVEL_SWITCH, currentLevel);
|
|
437
|
+
}
|
|
438
|
+
onLevelSwitchEnd(currentLevel) {
|
|
432
439
|
this.trigger(Events.PLAYBACK_LEVEL_SWITCH_END);
|
|
433
|
-
const isHD =
|
|
440
|
+
const isHD = currentLevel.height >= 720 || currentLevel.bitrate / 1000 >= 2000;
|
|
434
441
|
this.trigger(Events.PLAYBACK_HIGHDEFINITIONUPDATE, isHD);
|
|
435
442
|
this.trigger(Events.PLAYBACK_BITRATE, currentLevel);
|
|
436
443
|
}
|
|
@@ -440,6 +447,11 @@ export default class DashPlayback extends HTML5Video {
|
|
|
440
447
|
isSeekEnabled() {
|
|
441
448
|
return this._playbackType === Playback.VOD || this.dvrEnabled;
|
|
442
449
|
}
|
|
450
|
+
getLevel(quality) {
|
|
451
|
+
const ret = this.levels.find((level) => level.level === quality);
|
|
452
|
+
assert.ok(ret, 'Invalid quality level');
|
|
453
|
+
return ret;
|
|
454
|
+
}
|
|
443
455
|
}
|
|
444
456
|
DashPlayback.canPlay = function (resource, mimeType) {
|
|
445
457
|
if (!isDashSource(resource, mimeType)) {
|
|
@@ -94,6 +94,9 @@ export default class HlsPlayback extends HTML5Video {
|
|
|
94
94
|
_onFragmentLoaded(evt: HlsEvents.FRAG_LOADED, data: FragLoadedData): void;
|
|
95
95
|
_onSubtitleLoaded(): void;
|
|
96
96
|
_onLevelSwitch(evt: HlsEvents.LEVEL_SWITCHING, data: LevelSwitchingData): void;
|
|
97
|
+
_onLevelSwitched(evt: HlsEvents.LEVEL_SWITCHED, data: {
|
|
98
|
+
level: number;
|
|
99
|
+
}): void;
|
|
97
100
|
get dvrEnabled(): boolean;
|
|
98
101
|
getPlaybackType(): PlaybackType;
|
|
99
102
|
isSeekEnabled(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,UAAU,EAKX,MAAM,cAAc,CAAA;AAGrB,OAAO,KAAK,EAAE,EACZ,MAAM,IAAI,SAAS,EAEnB,KAAK,SAAS,IAAI,YAAY,EAE9B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAG5B,KAAK,kBAAkB,EACxB,MAAM,QAAQ,CAAA;AAEf,OAAO,EACL,aAAa,
|
|
1
|
+
{"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"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"}
|
|
@@ -274,6 +274,7 @@ export default class HlsPlayback extends HTML5Video {
|
|
|
274
274
|
this._hls.on(HLSJS.Events.LEVEL_LOADED, (evt, data) => this._updatePlaybackType(evt, data));
|
|
275
275
|
this._hls.on(HLSJS.Events.LEVEL_UPDATED, (evt, data) => this._onLevelUpdated(evt, data));
|
|
276
276
|
this._hls.on(HLSJS.Events.LEVEL_SWITCHING, (evt, data) => this._onLevelSwitch(evt, data));
|
|
277
|
+
this._hls.on(HLSJS.Events.LEVEL_SWITCHED, (evt, data) => this._onLevelSwitched(evt, data));
|
|
277
278
|
this._hls.on(HLSJS.Events.FRAG_CHANGED, (evt, data) => this._onFragmentChanged(evt, data));
|
|
278
279
|
this._hls.on(HLSJS.Events.FRAG_LOADED, (evt, data) => this._onFragmentLoaded(evt, data));
|
|
279
280
|
this._hls.on(HLSJS.Events.FRAG_PARSING_METADATA, (evt, data) => this._onFragmentParsingMetadata(evt, data));
|
|
@@ -331,7 +332,10 @@ export default class HlsPlayback extends HTML5Video {
|
|
|
331
332
|
}
|
|
332
333
|
else {
|
|
333
334
|
Log.error('hlsjs: failed to recover', { evt, data });
|
|
334
|
-
trace(`${T} _recover failed to recover`, {
|
|
335
|
+
trace(`${T} _recover failed to recover`, {
|
|
336
|
+
type: data.type,
|
|
337
|
+
details: data.details,
|
|
338
|
+
});
|
|
335
339
|
error.level = PlayerError.Levels.FATAL;
|
|
336
340
|
this.triggerError(error);
|
|
337
341
|
}
|
|
@@ -414,12 +418,18 @@ export default class HlsPlayback extends HTML5Video {
|
|
|
414
418
|
this.trigger(Events.PLAYBACK_SETTINGSUPDATE);
|
|
415
419
|
}
|
|
416
420
|
_onHLSJSError(evt, data) {
|
|
417
|
-
trace(`${T} _onHLSJSError`, {
|
|
421
|
+
trace(`${T} _onHLSJSError`, {
|
|
422
|
+
fatal: data.fatal,
|
|
423
|
+
type: data.type,
|
|
424
|
+
details: data.details,
|
|
425
|
+
});
|
|
418
426
|
const error = {
|
|
419
427
|
code: PlaybackErrorCode.Generic,
|
|
420
428
|
description: `${this.name} error: type: ${data.type}, details: ${data.details} fatal: ${data.fatal}`,
|
|
421
429
|
level: data.fatal ? PlayerError.Levels.FATAL : PlayerError.Levels.WARN,
|
|
422
430
|
message: `${this.name} error: type: ${data.type}, details: ${data.details}`,
|
|
431
|
+
origin: this.name,
|
|
432
|
+
scope: HlsPlayback.type,
|
|
423
433
|
};
|
|
424
434
|
if (data.response) {
|
|
425
435
|
error.description += `, response: ${JSON.stringify(data.response)}`;
|
|
@@ -499,7 +509,10 @@ export default class HlsPlayback extends HTML5Video {
|
|
|
499
509
|
return;
|
|
500
510
|
}
|
|
501
511
|
Log.warn('hlsjs: non-fatal error occurred', { evt, data });
|
|
502
|
-
trace(`${T} _onHLSJSError non-fatal error occurred`, {
|
|
512
|
+
trace(`${T} _onHLSJSError non-fatal error occurred`, {
|
|
513
|
+
type: data.type,
|
|
514
|
+
details: data.details,
|
|
515
|
+
});
|
|
503
516
|
}
|
|
504
517
|
}
|
|
505
518
|
_keyIsDenied(data) {
|
|
@@ -773,22 +786,24 @@ export default class HlsPlayback extends HTML5Video {
|
|
|
773
786
|
if (!this.levels.length) {
|
|
774
787
|
this._fillLevels();
|
|
775
788
|
}
|
|
776
|
-
this.trigger(Events.PLAYBACK_LEVEL_SWITCH_END);
|
|
777
789
|
this.trigger(Events.PLAYBACK_LEVEL_SWITCH, data);
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
790
|
+
}
|
|
791
|
+
_onLevelSwitched(evt, data) {
|
|
792
|
+
// @ts-ignore
|
|
793
|
+
const currentLevel = this._hls.levels[data.level]; // TODO or find by .id == level?
|
|
794
|
+
assert.ok(currentLevel, 'Invalid quality level');
|
|
795
|
+
this._currentLevel = data.level;
|
|
796
|
+
// TODO should highDefinition be private and maybe have a read only accessor if it's used somewhere
|
|
797
|
+
this.highDefinition =
|
|
798
|
+
currentLevel.height >= 720 || currentLevel.bitrate / 1000 >= 2000;
|
|
799
|
+
this.trigger(Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinition);
|
|
800
|
+
this.trigger(Events.PLAYBACK_BITRATE, {
|
|
801
|
+
height: currentLevel.height,
|
|
802
|
+
width: currentLevel.width,
|
|
803
|
+
bitrate: currentLevel.bitrate,
|
|
804
|
+
level: data.level,
|
|
805
|
+
});
|
|
806
|
+
this.trigger(Events.PLAYBACK_LEVEL_SWITCH_END);
|
|
792
807
|
}
|
|
793
808
|
get dvrEnabled() {
|
|
794
809
|
// enabled when:
|
package/lib/playback.types.d.ts
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Playback time in seconds since the beginning of the stream (or a segment for the live streams)
|
|
3
|
-
* For the plugin development
|
|
4
3
|
* @beta
|
|
5
4
|
*/
|
|
6
5
|
export type TimeValue = number;
|
|
7
6
|
/**
|
|
8
|
-
*
|
|
7
|
+
* Current playback time and total duration of the media.
|
|
9
8
|
* @beta
|
|
10
9
|
*/
|
|
11
|
-
export
|
|
10
|
+
export interface TimePosition {
|
|
11
|
+
/**
|
|
12
|
+
* Current playback time, 0..duration, seconds.
|
|
13
|
+
*/
|
|
12
14
|
current: TimeValue;
|
|
15
|
+
/**
|
|
16
|
+
* Total duration of the media, seconds.
|
|
17
|
+
*/
|
|
13
18
|
total: TimeValue;
|
|
14
|
-
}
|
|
19
|
+
}
|
|
15
20
|
/**
|
|
16
21
|
* For the plugin development
|
|
17
22
|
* @beta
|
|
@@ -27,33 +32,87 @@ export type TimeUpdate = TimePosition & {
|
|
|
27
32
|
firstFragDateTime: number;
|
|
28
33
|
};
|
|
29
34
|
/**
|
|
35
|
+
* A level of quality within a media source.
|
|
30
36
|
* @beta
|
|
31
37
|
*/
|
|
32
|
-
export
|
|
38
|
+
export interface QualityLevel {
|
|
39
|
+
/**
|
|
40
|
+
* Zero-based index of the quality level.
|
|
41
|
+
*/
|
|
33
42
|
level: number;
|
|
43
|
+
/**
|
|
44
|
+
* Width of the video, pixels.
|
|
45
|
+
*/
|
|
34
46
|
width: number;
|
|
47
|
+
/**
|
|
48
|
+
* Height of the video, pixels.
|
|
49
|
+
*/
|
|
35
50
|
height: number;
|
|
51
|
+
/**
|
|
52
|
+
* Bitrate of the video, bps.
|
|
53
|
+
*/
|
|
36
54
|
bitrate: number;
|
|
37
|
-
}
|
|
55
|
+
}
|
|
38
56
|
/**
|
|
57
|
+
* Codes of errors occurring within the playback component.
|
|
39
58
|
* @beta
|
|
40
59
|
*/
|
|
41
60
|
export declare enum PlaybackErrorCode {
|
|
61
|
+
/**
|
|
62
|
+
* An unknown or uncategorised error.
|
|
63
|
+
*/
|
|
42
64
|
Generic = 0,
|
|
65
|
+
/**
|
|
66
|
+
* The media source is not available. Typically a network error.
|
|
67
|
+
*/
|
|
43
68
|
MediaSourceUnavailable = 1,
|
|
69
|
+
/**
|
|
70
|
+
* The media source is not accessible due to some protection policy.
|
|
71
|
+
*/
|
|
44
72
|
MediaSourceAccessDenied = 3
|
|
45
73
|
}
|
|
46
74
|
/**
|
|
75
|
+
* Levels of severity of errors. Non-fatal errors usually can be ignored.
|
|
47
76
|
* @beta
|
|
48
77
|
*/
|
|
49
78
|
export type ErrorLevel = 'FATAL' | 'WARN' | 'INFO';
|
|
50
79
|
/**
|
|
80
|
+
* Subsystems of a player component.
|
|
81
|
+
* @beta
|
|
82
|
+
*/
|
|
83
|
+
export type PlayerComponentType = 'container' | 'core' | 'playback';
|
|
84
|
+
/**
|
|
85
|
+
* An error occurred during the playback.
|
|
51
86
|
* @beta
|
|
52
87
|
*/
|
|
53
88
|
export interface PlaybackError {
|
|
89
|
+
/**
|
|
90
|
+
* Error code.
|
|
91
|
+
*/
|
|
54
92
|
code: PlaybackErrorCode;
|
|
93
|
+
/**
|
|
94
|
+
* Detailed description of the error.
|
|
95
|
+
*/
|
|
55
96
|
description: string;
|
|
97
|
+
/**
|
|
98
|
+
* Level of severity of the error.
|
|
99
|
+
*/
|
|
56
100
|
level: ErrorLevel;
|
|
101
|
+
/**
|
|
102
|
+
* Error message. Non-fatal usually can be ignored.
|
|
103
|
+
*/
|
|
57
104
|
message: string;
|
|
105
|
+
/**
|
|
106
|
+
* Exact component that originated the error.
|
|
107
|
+
* @example
|
|
108
|
+
* - 'core'
|
|
109
|
+
* - 'dash'
|
|
110
|
+
* - 'media_control'
|
|
111
|
+
*/
|
|
112
|
+
origin: string;
|
|
113
|
+
/**
|
|
114
|
+
* Component subsystem of the error origin
|
|
115
|
+
*/
|
|
116
|
+
scope: PlayerComponentType;
|
|
58
117
|
}
|
|
59
118
|
//# sourceMappingURL=playback.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback.types.d.ts","sourceRoot":"","sources":["../src/playback.types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"playback.types.d.ts","sourceRoot":"","sources":["../src/playback.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B;;OAEG;IACH,OAAO,IAAI;IACX;;OAEG;IACH,sBAAsB,IAAI;IAC1B;;OAEG;IACH,uBAAuB,IAAI;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;AAEnE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IACvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,KAAK,EAAE,UAAU,CAAA;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,EAAE,mBAAmB,CAAA;CAC3B"}
|
package/lib/playback.types.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Codes of errors occurring within the playback component.
|
|
2
3
|
* @beta
|
|
3
4
|
*/
|
|
4
5
|
export var PlaybackErrorCode;
|
|
5
6
|
(function (PlaybackErrorCode) {
|
|
7
|
+
/**
|
|
8
|
+
* An unknown or uncategorised error.
|
|
9
|
+
*/
|
|
6
10
|
PlaybackErrorCode[PlaybackErrorCode["Generic"] = 0] = "Generic";
|
|
11
|
+
/**
|
|
12
|
+
* The media source is not available. Typically a network error.
|
|
13
|
+
*/
|
|
7
14
|
PlaybackErrorCode[PlaybackErrorCode["MediaSourceUnavailable"] = 1] = "MediaSourceUnavailable";
|
|
15
|
+
/**
|
|
16
|
+
* The media source is not accessible due to some protection policy.
|
|
17
|
+
*/
|
|
8
18
|
PlaybackErrorCode[PlaybackErrorCode["MediaSourceAccessDenied"] = 3] = "MediaSourceAccessDenied";
|
|
9
19
|
})(PlaybackErrorCode || (PlaybackErrorCode = {}));
|
package/lib/types.d.ts
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export interface PlayerMediaSourceDesc {
|
|
10
10
|
/**
|
|
11
|
-
* The MIME type of the media source (e.g. "video/mp4"
|
|
11
|
+
* The MIME type of the media source (e.g. `"video/mp4"`, `"application/x-mpegURL"`).
|
|
12
|
+
* Necessary if the type cannot be detected from file extension of the source URL.
|
|
12
13
|
*/
|
|
13
14
|
mimeType?: string;
|
|
14
15
|
/**
|
|
@@ -22,11 +23,12 @@ export interface PlayerMediaSourceDesc {
|
|
|
22
23
|
*/
|
|
23
24
|
export type PlayerMediaSource = string | PlayerMediaSourceDesc;
|
|
24
25
|
/**
|
|
26
|
+
* Debug output category selector
|
|
25
27
|
* @beta
|
|
26
28
|
*/
|
|
27
29
|
export type PlayerDebugTag = 'all' | 'clappr' | 'dash' | 'hls' | 'none';
|
|
28
30
|
/**
|
|
29
|
-
* @remarks true is equivalent to 'all'
|
|
31
|
+
* @remarks `true` is equivalent to `'all'`, `false` is equivalent to `'none'`
|
|
30
32
|
* @beta
|
|
31
33
|
*/
|
|
32
34
|
export type PlayerDebugSettings = PlayerDebugTag | boolean;
|
|
@@ -36,10 +38,12 @@ export type PlayerDebugSettings = PlayerDebugTag | boolean;
|
|
|
36
38
|
*/
|
|
37
39
|
export type PlaybackType = 'live' | 'vod';
|
|
38
40
|
/**
|
|
41
|
+
* Media delivery protocol
|
|
39
42
|
* @beta
|
|
40
43
|
*/
|
|
41
44
|
export type MediaTransport = 'dash' | 'hls';
|
|
42
45
|
/**
|
|
46
|
+
* Preferred media delivery protocol
|
|
43
47
|
* @beta
|
|
44
48
|
*/
|
|
45
49
|
export type TransportPreference = MediaTransport;
|
|
@@ -146,6 +150,8 @@ export interface PlayerConfig extends Record<string, unknown> {
|
|
|
146
150
|
strings?: TranslationSettings;
|
|
147
151
|
}
|
|
148
152
|
/**
|
|
153
|
+
* An ISO 639-1 language code.
|
|
154
|
+
* @example `pt`
|
|
149
155
|
* @beta
|
|
150
156
|
*/
|
|
151
157
|
export type LangTag = string;
|
|
@@ -154,12 +160,18 @@ export type LangTag = string;
|
|
|
154
160
|
*/
|
|
155
161
|
export type TranslationKey = string;
|
|
156
162
|
/**
|
|
163
|
+
* A plain JS object that must conform to the DASH.js settings schema.
|
|
157
164
|
* @beta
|
|
158
165
|
* {@link https://cdn.dashjs.org/latest/jsdoc/module-Settings.html | DASH.js settings}
|
|
159
166
|
*/
|
|
160
167
|
export type DashSettings = Record<string, unknown>;
|
|
161
168
|
/**
|
|
162
|
-
*
|
|
169
|
+
* Localization strings for the player UI.
|
|
170
|
+
* @remarks
|
|
171
|
+
* The keys are language codes, and the values are objects with keys being the translation keys and values being the translations.
|
|
172
|
+
*
|
|
173
|
+
* This dictionary is used to localize the player UI, including the error messages and is shared across all the player components (including the plugins).
|
|
174
|
+
*
|
|
163
175
|
* @example
|
|
164
176
|
* ```
|
|
165
177
|
* {
|
|
@@ -178,11 +190,33 @@ export type DashSettings = Record<string, unknown>;
|
|
|
178
190
|
* @beta
|
|
179
191
|
*/
|
|
180
192
|
export type TranslationSettings = Partial<Record<LangTag, Record<TranslationKey, string>>>;
|
|
193
|
+
/**
|
|
194
|
+
* Dimensions of the player container DOM element.
|
|
195
|
+
* @beta
|
|
196
|
+
*/
|
|
197
|
+
export type ContainerSize = {
|
|
198
|
+
width: number;
|
|
199
|
+
height: number;
|
|
200
|
+
};
|
|
181
201
|
/**
|
|
182
202
|
* A top-level event on the player object
|
|
183
203
|
* @beta
|
|
184
204
|
*/
|
|
185
205
|
export declare enum PlayerEvent {
|
|
206
|
+
/**
|
|
207
|
+
* Playback has reached the end of the media.
|
|
208
|
+
*/
|
|
209
|
+
Ended = "ended",
|
|
210
|
+
/**
|
|
211
|
+
* An error occurred.
|
|
212
|
+
* Parameters: {@link PlaybackError}
|
|
213
|
+
*/
|
|
214
|
+
Error = "error",
|
|
215
|
+
/**
|
|
216
|
+
* The player has switched to or from the fullscreen mode.
|
|
217
|
+
* Parameters:`boolean` isFullscreen
|
|
218
|
+
*/
|
|
219
|
+
Fullscreen = "fullscreen",
|
|
186
220
|
/**
|
|
187
221
|
* The player is ready to use.
|
|
188
222
|
*/
|
|
@@ -195,13 +229,28 @@ export declare enum PlayerEvent {
|
|
|
195
229
|
* Playback has been paused.
|
|
196
230
|
*/
|
|
197
231
|
Pause = "pause",
|
|
232
|
+
/**
|
|
233
|
+
* The player's container has been resized.
|
|
234
|
+
* Parameters: {@link ContainerSize}
|
|
235
|
+
*/
|
|
236
|
+
Resize = "resize",
|
|
237
|
+
/**
|
|
238
|
+
* The player is seeking to a new position.
|
|
239
|
+
*/
|
|
240
|
+
Seek = "seek",
|
|
198
241
|
/**
|
|
199
242
|
* Playback has been stopped.
|
|
200
243
|
*/
|
|
201
244
|
Stop = "stop",
|
|
202
245
|
/**
|
|
203
|
-
*
|
|
246
|
+
* The current playback time has changed.
|
|
247
|
+
* Parameters: {@link TimePosition}
|
|
248
|
+
*/
|
|
249
|
+
TimeUpdate = "timeupdate",
|
|
250
|
+
/**
|
|
251
|
+
* The volume has changed.
|
|
252
|
+
* Parameters: `number` volume in the range 0..1
|
|
204
253
|
*/
|
|
205
|
-
|
|
254
|
+
VolumeUpdate = "volumeupdate"
|
|
206
255
|
}
|
|
207
256
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,qBAAqB,CAAA;AAE9D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAEvE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,OAAO,CAAA;AAE1D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAA;AAEzC;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,CAAA;AAE3C;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAA;AAEhD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,IAAI,CAAC,EAAE,YAAY,CAAA;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAE3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;IAE3B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,mBAAmB,CAAA;IAEvC;;OAEG;IACH,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAE5B;;OAEG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAE5B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AAEnC;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACvC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAChD,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;GAGG;AACH,oBAAY,WAAW;IACrB;;OAEG;IACH,KAAK,UAAU;IACf;;;OAGG;IACH,KAAK,UAAU;IACf;;;OAGG;IACH,UAAU,eAAe;IACzB;;OAEG;IACH,KAAK,UAAU;IACf;;OAEG;IACH,IAAI,SAAS;IACb;;OAEG;IACH,KAAK,UAAU;IACf;;;OAGG;IACH,MAAM,WAAW;IACjB;;OAEG;IACH,IAAI,SAAS;IACb;;OAEG;IACH,IAAI,SAAS;IACb;;;OAGG;IACH,UAAU,eAAe;IACzB;;;OAGG;IACH,YAAY,iBAAiB;CAC9B"}
|
package/lib/types.js
CHANGED
|
@@ -4,6 +4,20 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export var PlayerEvent;
|
|
6
6
|
(function (PlayerEvent) {
|
|
7
|
+
/**
|
|
8
|
+
* Playback has reached the end of the media.
|
|
9
|
+
*/
|
|
10
|
+
PlayerEvent["Ended"] = "ended";
|
|
11
|
+
/**
|
|
12
|
+
* An error occurred.
|
|
13
|
+
* Parameters: {@link PlaybackError}
|
|
14
|
+
*/
|
|
15
|
+
PlayerEvent["Error"] = "error";
|
|
16
|
+
/**
|
|
17
|
+
* The player has switched to or from the fullscreen mode.
|
|
18
|
+
* Parameters:`boolean` isFullscreen
|
|
19
|
+
*/
|
|
20
|
+
PlayerEvent["Fullscreen"] = "fullscreen";
|
|
7
21
|
/**
|
|
8
22
|
* The player is ready to use.
|
|
9
23
|
*/
|
|
@@ -16,12 +30,27 @@ export var PlayerEvent;
|
|
|
16
30
|
* Playback has been paused.
|
|
17
31
|
*/
|
|
18
32
|
PlayerEvent["Pause"] = "pause";
|
|
33
|
+
/**
|
|
34
|
+
* The player's container has been resized.
|
|
35
|
+
* Parameters: {@link ContainerSize}
|
|
36
|
+
*/
|
|
37
|
+
PlayerEvent["Resize"] = "resize";
|
|
38
|
+
/**
|
|
39
|
+
* The player is seeking to a new position.
|
|
40
|
+
*/
|
|
41
|
+
PlayerEvent["Seek"] = "seek";
|
|
19
42
|
/**
|
|
20
43
|
* Playback has been stopped.
|
|
21
44
|
*/
|
|
22
45
|
PlayerEvent["Stop"] = "stop";
|
|
23
46
|
/**
|
|
24
|
-
*
|
|
47
|
+
* The current playback time has changed.
|
|
48
|
+
* Parameters: {@link TimePosition}
|
|
25
49
|
*/
|
|
26
|
-
PlayerEvent["
|
|
50
|
+
PlayerEvent["TimeUpdate"] = "timeupdate";
|
|
51
|
+
/**
|
|
52
|
+
* The volume has changed.
|
|
53
|
+
* Parameters: `number` volume in the range 0..1
|
|
54
|
+
*/
|
|
55
|
+
PlayerEvent["VolumeUpdate"] = "volumeupdate";
|
|
27
56
|
})(PlayerEvent || (PlayerEvent = {}));
|