@gcorevideo/player 2.20.4 → 2.20.6
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 +407 -205
- package/dist/index.css +1285 -1285
- package/dist/index.js +550 -386
- package/dist/plugins/index.css +966 -966
- package/dist/plugins/index.js +121 -162
- package/lib/Player.d.ts.map +1 -1
- package/lib/Player.js +2 -2
- 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.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 +69 -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 +16 -8
- package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
- package/lib/plugins/multi-camera/MultiCamera.js +2 -3
- package/lib/plugins/poster/Poster.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/testUtils.d.ts +66 -2
- package/lib/testUtils.d.ts.map +1 -1
- package/lib/testUtils.js +95 -2
- package/package.json +2 -2
- package/src/Player.ts +2 -2
- package/src/__tests__/Player.test.ts +2 -3
- package/src/playback/BasePlayback.ts +41 -0
- package/src/playback/dash-playback/DashPlayback.ts +12 -17
- package/src/playback/hls-playback/HlsPlayback.ts +9 -7
- package/src/playback.types.ts +11 -3
- package/src/plugins/context-menu/ContextMenu.ts +1 -2
- package/src/plugins/error-screen/ErrorScreen.ts +120 -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 +16 -8
- package/src/plugins/multi-camera/MultiCamera.ts +2 -3
- package/src/plugins/poster/Poster.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/testUtils.ts +100 -3
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -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 {};
|
package/lib/playback.types.d.ts
CHANGED
|
@@ -61,15 +61,15 @@ export declare enum PlaybackErrorCode {
|
|
|
61
61
|
/**
|
|
62
62
|
* An unknown or uncategorised error.
|
|
63
63
|
*/
|
|
64
|
-
Generic =
|
|
64
|
+
Generic = "GENERIC_ERROR",
|
|
65
65
|
/**
|
|
66
66
|
* The media source is not available. Typically a network error.
|
|
67
67
|
*/
|
|
68
|
-
MediaSourceUnavailable =
|
|
68
|
+
MediaSourceUnavailable = "MEDIA_SOURCE_UNAVAILABLE",
|
|
69
69
|
/**
|
|
70
70
|
* The media source is not accessible due to some protection policy.
|
|
71
71
|
*/
|
|
72
|
-
MediaSourceAccessDenied =
|
|
72
|
+
MediaSourceAccessDenied = "MEDIA_SOURCE_ACCESS_DENIED"
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
75
|
* Levels of severity of errors. Non-fatal errors usually can be ignored.
|
|
@@ -114,5 +114,12 @@ export interface PlaybackError {
|
|
|
114
114
|
* Component subsystem of the error origin
|
|
115
115
|
*/
|
|
116
116
|
scope: PlayerComponentType;
|
|
117
|
+
/**
|
|
118
|
+
* UI description of the error.
|
|
119
|
+
*/
|
|
120
|
+
UI?: {
|
|
121
|
+
title: string;
|
|
122
|
+
message: string;
|
|
123
|
+
};
|
|
117
124
|
}
|
|
118
125
|
//# 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;;;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,
|
|
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,kBAAkB;IACzB;;OAEG;IACH,sBAAsB,6BAA6B;IACnD;;OAEG;IACH,uBAAuB,+BAA+B;CACvD;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;IAE1B;;OAEG;IACH,EAAE,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF"}
|
package/lib/playback.types.js
CHANGED
|
@@ -7,13 +7,13 @@ export var PlaybackErrorCode;
|
|
|
7
7
|
/**
|
|
8
8
|
* An unknown or uncategorised error.
|
|
9
9
|
*/
|
|
10
|
-
PlaybackErrorCode[
|
|
10
|
+
PlaybackErrorCode["Generic"] = "GENERIC_ERROR";
|
|
11
11
|
/**
|
|
12
12
|
* The media source is not available. Typically a network error.
|
|
13
13
|
*/
|
|
14
|
-
PlaybackErrorCode[
|
|
14
|
+
PlaybackErrorCode["MediaSourceUnavailable"] = "MEDIA_SOURCE_UNAVAILABLE";
|
|
15
15
|
/**
|
|
16
16
|
* The media source is not accessible due to some protection policy.
|
|
17
17
|
*/
|
|
18
|
-
PlaybackErrorCode[
|
|
18
|
+
PlaybackErrorCode["MediaSourceAccessDenied"] = "MEDIA_SOURCE_ACCESS_DENIED";
|
|
19
19
|
})(PlaybackErrorCode || (PlaybackErrorCode = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../src/plugins/context-menu/ContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAIrB,OAAO,gDAAgD,CAAA;AASvD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;IAChD,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,IAAI,CAAa;IAEzB,OAAO,CAAC,WAAW,CAAmB;IAEtC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;MAEtB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,aAAa,GAKxB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;gBAEW,SAAS,EAAE,SAAS;IAYhC;;OAEG;IACM,UAAU;
|
|
1
|
+
{"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../src/plugins/context-menu/ContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAIrB,OAAO,gDAAgD,CAAA;AASvD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;IAChD,OAAO,CAAC,MAAM,CAAa;IAE3B,OAAO,CAAC,IAAI,CAAa;IAEzB,OAAO,CAAC,WAAW,CAAmB;IAEtC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;MAEtB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,KAAK,aAAa,GAKxB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;gBAEW,SAAS,EAAE,SAAS;IAYhC;;OAEG;IACM,UAAU;IASnB;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,cAAc;IAItB;;OAEG;IACM,MAAM;IASf,OAAO,CAAC,eAAe,CAEtB;CACF"}
|
|
@@ -61,7 +61,7 @@ export class ContextMenu extends UIContainerPlugin {
|
|
|
61
61
|
this._url = this.options.contextMenu.url;
|
|
62
62
|
}
|
|
63
63
|
this.render();
|
|
64
|
-
this.
|
|
64
|
+
$('body').on('click', this.hideOnBodyClick);
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
67
|
* @internal
|
|
@@ -69,7 +69,6 @@ export class ContextMenu extends UIContainerPlugin {
|
|
|
69
69
|
bindEvents() {
|
|
70
70
|
this.listenTo(this.container, Events.CONTAINER_CONTEXTMENU, this.toggleContextMenu);
|
|
71
71
|
this.listenTo(this.container, Events.CONTAINER_CLICK, this.hide);
|
|
72
|
-
$('body').on('click', this.hideOnBodyClick);
|
|
73
72
|
}
|
|
74
73
|
/**
|
|
75
74
|
* @internal
|
|
@@ -1,48 +1,63 @@
|
|
|
1
1
|
import { UICorePlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/error-screen/error_screen.scss';
|
|
3
|
-
type
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export type ErrorDesc = {
|
|
4
|
+
description: string;
|
|
5
|
+
level: string;
|
|
6
6
|
code: string;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
origin: string;
|
|
8
|
+
scope: string;
|
|
9
|
+
raw?: string;
|
|
10
|
+
UI?: {
|
|
11
|
+
icon?: string;
|
|
12
|
+
title: string;
|
|
13
|
+
message: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export type ErrorScreenPluginSettings = {
|
|
17
|
+
noReload?: boolean;
|
|
9
18
|
};
|
|
10
19
|
/**
|
|
11
|
-
* Displays
|
|
20
|
+
* Displays an error nicely in the overlay on top of the player.
|
|
12
21
|
* @beta
|
|
13
22
|
*/
|
|
14
23
|
export declare class ErrorScreen extends UICorePlugin {
|
|
15
|
-
private _retry;
|
|
16
24
|
private err;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
20
28
|
get name(): string;
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
21
32
|
get supportedVersion(): {
|
|
22
33
|
min: string;
|
|
23
34
|
};
|
|
24
|
-
|
|
25
|
-
|
|
35
|
+
private static readonly template;
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
26
39
|
get attributes(): {
|
|
27
40
|
class: string;
|
|
28
41
|
'data-error-screen': string;
|
|
29
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
30
46
|
bindEvents(): void;
|
|
31
|
-
private onCoreReady;
|
|
32
47
|
private onPlay;
|
|
33
|
-
private
|
|
34
|
-
|
|
35
|
-
|
|
48
|
+
private unmount;
|
|
49
|
+
/**
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
get events(): {
|
|
53
|
+
'click .player-error-screen__reload': string;
|
|
54
|
+
};
|
|
36
55
|
private reload;
|
|
37
|
-
private
|
|
38
|
-
private onContainerChanged;
|
|
39
|
-
private onStartAd;
|
|
40
|
-
private onFinishAd;
|
|
56
|
+
private onActiveContainerChanged;
|
|
41
57
|
private onError;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
58
|
+
/**
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
45
61
|
render(): this;
|
|
46
62
|
}
|
|
47
|
-
export {};
|
|
48
63
|
//# sourceMappingURL=ErrorScreen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../../src/plugins/error-screen/ErrorScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../../src/plugins/error-screen/ErrorScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAA;AAO7D,OAAO,gDAAgD,CAAA;AAGvD,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AASD,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAID;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAE1C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO;IAMf;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,OAAO;IAgBf;;OAEG;IACM,MAAM;CAkBhB"}
|
|
@@ -1,184 +1,117 @@
|
|
|
1
|
-
import { UICorePlugin, Events, template
|
|
1
|
+
import { UICorePlugin, Events, template } from '@clappr/core';
|
|
2
2
|
import { trace } from '@gcorevideo/utils';
|
|
3
3
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
4
4
|
import reloadIcon from '../../../assets/icons/old/reload.svg';
|
|
5
5
|
import templateHtml from '../../../assets/error-screen/error_screen.ejs';
|
|
6
6
|
import '../../../assets/error-screen/error_screen.scss';
|
|
7
|
-
const TIME_FOR_UPDATE = 10000;
|
|
8
|
-
const MAX_RETRY = 10;
|
|
9
7
|
const T = 'plugins.error_screen';
|
|
10
8
|
/**
|
|
11
|
-
* Displays
|
|
9
|
+
* Displays an error nicely in the overlay on top of the player.
|
|
12
10
|
* @beta
|
|
13
11
|
*/
|
|
14
12
|
export class ErrorScreen extends UICorePlugin {
|
|
15
|
-
_retry = 0;
|
|
16
13
|
err = null;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
20
17
|
get name() {
|
|
21
|
-
return '
|
|
18
|
+
return 'error_screen';
|
|
22
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
23
|
get supportedVersion() {
|
|
24
24
|
return { min: CLAPPR_VERSION };
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return this.core.activeContainer;
|
|
31
|
-
}
|
|
26
|
+
static template = template(templateHtml);
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
32
30
|
get attributes() {
|
|
33
31
|
return {
|
|
34
|
-
|
|
32
|
+
class: 'player-error-screen',
|
|
35
33
|
'data-error-screen': '',
|
|
36
34
|
};
|
|
37
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
38
39
|
bindEvents() {
|
|
39
40
|
this.listenTo(this.core, Events.ERROR, this.onError);
|
|
40
|
-
this.listenTo(this.core, Events.
|
|
41
|
-
this.listenTo(this.core, 'core:advertisement:start', this.onStartAd);
|
|
42
|
-
this.listenTo(this.core, 'core:advertisement:finish', this.onFinishAd);
|
|
43
|
-
this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged);
|
|
44
|
-
}
|
|
45
|
-
onCoreReady() {
|
|
46
|
-
trace(`${T} onCoreReady`);
|
|
47
|
-
if (this.core.activePlayback) {
|
|
48
|
-
this.listenTo(this.core.activePlayback, Events.PLAYBACK_PLAY, this.onPlay);
|
|
49
|
-
}
|
|
41
|
+
this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
|
|
50
42
|
}
|
|
51
43
|
onPlay() {
|
|
52
44
|
trace(`${T} onPlay`);
|
|
53
|
-
this.
|
|
45
|
+
this.unmount();
|
|
54
46
|
}
|
|
55
|
-
|
|
56
|
-
trace(`${T}
|
|
57
|
-
this._retry = 0;
|
|
47
|
+
unmount() {
|
|
48
|
+
trace(`${T} unmount`);
|
|
58
49
|
this.err = null;
|
|
59
|
-
|
|
60
|
-
clearTimeout(this.timeout);
|
|
61
|
-
this.timeout = null;
|
|
62
|
-
}
|
|
63
|
-
this.$el.hide();
|
|
64
|
-
}
|
|
65
|
-
unBindEvents() {
|
|
66
|
-
// @ts-ignore
|
|
67
|
-
this.stopListening(this.core, 'core:advertisement:start');
|
|
68
|
-
// @ts-ignore
|
|
69
|
-
this.stopListening(this.core, 'core:advertisement:finish');
|
|
70
|
-
// @ts-ignore
|
|
71
|
-
this.stopListening(this.core, Events.ERROR);
|
|
50
|
+
this.$el.remove();
|
|
72
51
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
52
|
+
/**
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
get events() {
|
|
56
|
+
return {
|
|
57
|
+
'click .player-error-screen__reload': 'reload',
|
|
58
|
+
};
|
|
76
59
|
}
|
|
77
60
|
reload() {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
this.core.configure({
|
|
63
|
+
reloading: true,
|
|
64
|
+
source: this.core.options.source,
|
|
65
|
+
sources: this.core.options.sources,
|
|
66
|
+
});
|
|
67
|
+
}, 0);
|
|
68
|
+
}
|
|
69
|
+
onActiveContainerChanged() {
|
|
70
|
+
trace(`${T} onActiveContainerChanged`, {
|
|
71
|
+
reloading: this.core.options.reloading,
|
|
82
72
|
});
|
|
83
|
-
this.core.activeContainer.mediaControlDisabled = false;
|
|
84
|
-
this.unbindReload();
|
|
85
|
-
}
|
|
86
|
-
unbindReload() {
|
|
87
|
-
this.reloadButton && this.reloadButton.off('click');
|
|
88
|
-
}
|
|
89
|
-
onContainerChanged() {
|
|
90
73
|
this.err = null;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this.hide();
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
onFinishAd() {
|
|
104
|
-
this.hideValue = false;
|
|
105
|
-
if (this.err) {
|
|
106
|
-
this.container.disableMediaControl();
|
|
107
|
-
this.container.stop();
|
|
108
|
-
this.show();
|
|
74
|
+
this.listenTo(this.core.activeContainer.playback, Events.PLAYBACK_PLAY, this.onPlay);
|
|
75
|
+
if (this.core.options.reloading) {
|
|
76
|
+
setTimeout(() => {
|
|
77
|
+
this.core.options.reloading = false;
|
|
78
|
+
this.unmount();
|
|
79
|
+
this.core.activeContainer.play({
|
|
80
|
+
reloading: true,
|
|
81
|
+
});
|
|
82
|
+
}, 0);
|
|
109
83
|
}
|
|
110
84
|
}
|
|
111
85
|
onError(err) {
|
|
112
86
|
trace(`${T} onError`, { err });
|
|
113
|
-
if (err.
|
|
114
|
-
err
|
|
115
|
-
|
|
87
|
+
if (err.UI) {
|
|
88
|
+
if (this.err) {
|
|
89
|
+
this.unmount();
|
|
90
|
+
}
|
|
116
91
|
this.err = {
|
|
117
|
-
title:
|
|
118
|
-
message:
|
|
119
|
-
code:
|
|
120
|
-
|
|
121
|
-
icon: '',
|
|
122
|
-
reloadIcon,
|
|
92
|
+
title: err.UI.title,
|
|
93
|
+
message: err.UI.message,
|
|
94
|
+
code: err.code,
|
|
95
|
+
icon: err.UI.icon,
|
|
123
96
|
};
|
|
124
|
-
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
if (this.options.errorScreen?.neverStopToRetry) {
|
|
128
|
-
this._retry = 0;
|
|
129
|
-
}
|
|
130
|
-
if (this._retry >= MAX_RETRY) {
|
|
131
|
-
this.drying();
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
const ctp = this.container.getPlugin('click_to_pause_custom');
|
|
135
|
-
const toggleCTP = !!ctp?.enabled;
|
|
136
|
-
if (toggleCTP) {
|
|
137
|
-
// clickToPausePlugin.afterEnabled = true;
|
|
138
|
-
ctp.disable();
|
|
139
|
-
}
|
|
140
|
-
this.timeout = setTimeout(() => {
|
|
141
|
-
if (toggleCTP) {
|
|
142
|
-
ctp.enable();
|
|
143
|
-
}
|
|
144
|
-
this.reload();
|
|
145
|
-
}, TIME_FOR_UPDATE);
|
|
146
|
-
const spinnerPlugin = this.container.getPlugin('spinner');
|
|
147
|
-
if (spinnerPlugin) {
|
|
148
|
-
spinnerPlugin.show(); // TODO remove?
|
|
149
|
-
setTimeout(() => spinnerPlugin.show(), 0);
|
|
150
|
-
}
|
|
97
|
+
this.render();
|
|
151
98
|
}
|
|
152
99
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
this._retry = 0;
|
|
157
|
-
if (!this.hideValue) {
|
|
158
|
-
this.container.disableMediaControl();
|
|
159
|
-
this.container.stop();
|
|
160
|
-
this.show();
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
show(err) {
|
|
164
|
-
if (err) {
|
|
165
|
-
this.err = err;
|
|
166
|
-
}
|
|
167
|
-
// TODO use container.disableMediaControl() instead
|
|
168
|
-
this.core.mediaControl.disable();
|
|
169
|
-
this.render();
|
|
170
|
-
this.$el.show();
|
|
171
|
-
}
|
|
172
|
-
hide() {
|
|
173
|
-
this.$el.hide();
|
|
174
|
-
}
|
|
100
|
+
/**
|
|
101
|
+
* @internal
|
|
102
|
+
*/
|
|
175
103
|
render() {
|
|
176
104
|
if (!this.err) {
|
|
177
105
|
return this;
|
|
178
106
|
}
|
|
179
|
-
this.$el.html(
|
|
180
|
-
|
|
181
|
-
|
|
107
|
+
this.$el.html(ErrorScreen.template({
|
|
108
|
+
...this.err,
|
|
109
|
+
reloadIcon: this.options.errorScreen?.noReload ? null : reloadIcon,
|
|
110
|
+
}));
|
|
111
|
+
// TODO append to container instead of core?
|
|
112
|
+
if (!this.el.parentElement) {
|
|
113
|
+
this.core.$el.append(this.el);
|
|
114
|
+
}
|
|
182
115
|
return this;
|
|
183
116
|
}
|
|
184
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,YAAY,EAMZ,IAAI,EACL,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// license that can be found in the LICENSE file.
|
|
4
4
|
import assert from 'assert';
|
|
5
5
|
import { Events, UICorePlugin, Browser, Playback, Utils, template, $, } from '@clappr/core';
|
|
6
|
-
import { reportError } from '@gcorevideo/utils';
|
|
6
|
+
import { reportError, trace } from '@gcorevideo/utils';
|
|
7
7
|
import { Kibo } from '../kibo/index.js';
|
|
8
8
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
9
9
|
import { getPageX, isFullscreen } from '../utils.js';
|
|
@@ -262,10 +262,11 @@ export class MediaControl extends UICorePlugin {
|
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
264
|
/**
|
|
265
|
-
*
|
|
265
|
+
* Hides the media control UI
|
|
266
266
|
*/
|
|
267
267
|
disable() {
|
|
268
|
-
|
|
268
|
+
trace(`${T} disable`);
|
|
269
|
+
this.userDisabled = true; // TODO distinguish between user and system (e.g., unplayable) disabled?
|
|
269
270
|
this.hide();
|
|
270
271
|
this.unbindKeyEvents();
|
|
271
272
|
this.$el.hide();
|
|
@@ -274,6 +275,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
274
275
|
* Reenables the plugin disabled earlier with the {@link MediaControl.disable} method
|
|
275
276
|
*/
|
|
276
277
|
enable() {
|
|
278
|
+
trace(`${T} enable`);
|
|
277
279
|
if (this.options.chromeless) {
|
|
278
280
|
return;
|
|
279
281
|
}
|
|
@@ -531,8 +533,14 @@ export class MediaControl extends UICorePlugin {
|
|
|
531
533
|
this.settingsUpdate();
|
|
532
534
|
this.core.activeContainer &&
|
|
533
535
|
this.core.activeContainer.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.core.activeContainer.isDvrInUse());
|
|
534
|
-
|
|
535
|
-
this.
|
|
536
|
+
// TODO test
|
|
537
|
+
if (this.core.activeContainer.mediaControlDisabled) {
|
|
538
|
+
this.disable();
|
|
539
|
+
}
|
|
540
|
+
else {
|
|
541
|
+
this.enable();
|
|
542
|
+
}
|
|
543
|
+
this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED); // TODO check
|
|
536
544
|
if (this.core.activeContainer.$el) {
|
|
537
545
|
this.core.activeContainer.$el.addClass('container-skin-1');
|
|
538
546
|
}
|
|
@@ -951,13 +959,13 @@ export class MediaControl extends UICorePlugin {
|
|
|
951
959
|
destroy() {
|
|
952
960
|
$(document).unbind('mouseup', this.stopDrag);
|
|
953
961
|
$(document).unbind('mousemove', this.updateDrag);
|
|
962
|
+
$(document).unbind('touchend', this.stopDrag);
|
|
963
|
+
$(document).unbind('touchmove', this.updateDrag);
|
|
954
964
|
this.unbindKeyEvents();
|
|
955
|
-
// @ts-ignore
|
|
956
|
-
this.stopListening();
|
|
957
965
|
return super.destroy();
|
|
958
966
|
}
|
|
959
967
|
configure() {
|
|
960
|
-
this.advertisementPlaying ? this.disable() : this.enable()
|
|
968
|
+
// this.advertisementPlaying ? this.disable() : this.enable()
|
|
961
969
|
this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE);
|
|
962
970
|
}
|
|
963
971
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiCamera.d.ts","sourceRoot":"","sources":["../../../src/plugins/multi-camera/MultiCamera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,IAAI,EAA8B,YAAY,EAAE,MAAM,cAAc,CAAC;AAMvF,OAAO,yCAAyC,CAAC;AASjD,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAA;AAMD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,aAAa,CAAgC;IAErD,OAAO,CAAC,WAAW,CAAa;IAEhC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,eAAe,CAAS;IAEhC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,MAAM,KAAK,OAAO,WAEjB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAa,MAAM;;;MAKlB;gBAEW,IAAI,EAAE,IAAI;IAYb,UAAU;IAOnB,YAAY;IAaZ,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IAYX,MAAM;IAwEf,OAAO,CAAC,cAAc;IAUtB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IA8BtC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"MultiCamera.d.ts","sourceRoot":"","sources":["../../../src/plugins/multi-camera/MultiCamera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,IAAI,EAA8B,YAAY,EAAE,MAAM,cAAc,CAAC;AAMvF,OAAO,yCAAyC,CAAC;AASjD,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAA;AAMD;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,aAAa,CAAgC;IAErD,OAAO,CAAC,WAAW,CAAa;IAEhC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,eAAe,CAAS;IAEhC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,MAAM,KAAK,OAAO,WAEjB;IAED,IAAI,QAAQ,QAEX;IAED,IAAa,UAAU;;;MAKtB;IAED,IAAa,MAAM;;;MAKlB;gBAEW,IAAI,EAAE,IAAI;IAYb,UAAU;IAOnB,YAAY;IAaZ,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IAYX,MAAM;IAwEf,OAAO,CAAC,cAAc;IAUtB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IA8BtC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,UAAU;IA4ClB,cAAc;IAId,gBAAgB;IAIhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,qBAAqB;CAK9B"}
|
|
@@ -262,13 +262,12 @@ export class MultiCamera extends UICorePlugin {
|
|
|
262
262
|
catch (error) {
|
|
263
263
|
reportError(error);
|
|
264
264
|
}
|
|
265
|
-
// TODO
|
|
266
|
-
this.core.getPlugin('
|
|
265
|
+
// TODO trigger error instead
|
|
266
|
+
this.core.getPlugin('error_screen')?.show({
|
|
267
267
|
title: this.core.i18n.t('source_offline'),
|
|
268
268
|
message: '',
|
|
269
269
|
code: '',
|
|
270
270
|
icon: '',
|
|
271
|
-
reloadIcon: '',
|
|
272
271
|
});
|
|
273
272
|
}
|
|
274
273
|
hideError() {
|
|
@@ -55,7 +55,7 @@ export class Poster extends UIContainerPlugin {
|
|
|
55
55
|
}
|
|
56
56
|
static template = template(posterHTML);
|
|
57
57
|
get shouldRender() {
|
|
58
|
-
if (!this.enabled) {
|
|
58
|
+
if (!this.enabled || this.options.reloading) {
|
|
59
59
|
return false;
|
|
60
60
|
}
|
|
61
61
|
const showForNoOp = !!this.options.poster?.showForNoOp;
|
|
@@ -37,7 +37,8 @@ export declare class SourceController extends CorePlugin {
|
|
|
37
37
|
* @internal
|
|
38
38
|
*/
|
|
39
39
|
bindEvents(): void;
|
|
40
|
-
private
|
|
40
|
+
private onCoreReady;
|
|
41
|
+
private onActiveContainerChanged;
|
|
41
42
|
private bindContainerEventListeners;
|
|
42
43
|
private reset;
|
|
43
44
|
private retryPlayback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceController.d.ts","sourceRoot":"","sources":["../../../src/plugins/source-controller/SourceController.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,IAAI,IAAI,UAAU,EACxB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"SourceController.d.ts","sourceRoot":"","sources":["../../../src/plugins/source-controller/SourceController.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,IAAI,IAAI,UAAU,EACxB,MAAM,cAAc,CAAA;AAwBrB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAuC9C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,kBAAkB,CAAI;IAE9B,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,IAAI,CAAiB;IAE7B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;gBAEW,IAAI,EAAE,UAAU;IAW5B;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,2BAA2B;IAsCnC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;CACF"}
|