@gcorevideo/player 2.22.27 → 2.22.29
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/media-control/media-control.scss +2 -6
- package/assets/seek-time/seek-time.html +2 -2
- package/assets/seek-time/seek-time.scss +4 -4
- package/dist/core.js +1 -1
- package/dist/index.css +1408 -1411
- package/dist/index.js +100 -135
- package/lib/plugins/clappr-nerd-stats/NerdStats.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/NerdStats.js +3 -7
- package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/speedtest/Speedtest.js +2 -3
- package/lib/plugins/clappr-nerd-stats/speedtest/index.d.ts.map +1 -1
- package/lib/plugins/clappr-nerd-stats/speedtest/index.js +1 -8
- package/lib/plugins/clappr-stats/ClapprStats.d.ts.map +1 -1
- package/lib/plugins/clappr-stats/ClapprStats.js +8 -2
- package/lib/plugins/media-control/MediaControl.d.ts +0 -1
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +9 -23
- package/lib/plugins/seek-time/SeekTime.d.ts +15 -6
- package/lib/plugins/seek-time/SeekTime.d.ts.map +1 -1
- package/lib/plugins/seek-time/SeekTime.js +17 -32
- package/lib/testUtils.d.ts +1 -0
- package/lib/testUtils.d.ts.map +1 -1
- package/lib/testUtils.js +1 -0
- package/package.json +1 -1
- package/src/plugins/clappr-nerd-stats/NerdStats.ts +3 -7
- package/src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts +2 -3
- package/src/plugins/clappr-nerd-stats/speedtest/index.ts +1 -9
- package/src/plugins/clappr-stats/ClapprStats.ts +10 -4
- package/src/plugins/media-control/MediaControl.ts +14 -25
- package/src/plugins/media-control/__tests__/MediaControl.test.ts +16 -0
- package/src/plugins/media-control/__tests__/__snapshots__/MediaControl.test.ts.snap +70 -0
- package/src/plugins/seek-time/SeekTime.ts +37 -50
- package/src/testUtils.ts +1 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;AAiCjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"NerdStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-nerd-stats/NerdStats.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAGZ,IAAI,EAGL,MAAM,cAAc,CAAA;AAuBrB,OAAO,0DAA0D,CAAA;AAiCjE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAU,SAAQ,YAAY;IACzC,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,gBAAgB,CAIvB;IAED,OAAO,CAAC,OAAO,CAAwB;IAEvC,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,YAAY,CAAc;IAElC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuB;IAE7D;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;MAItB;IAED;;OAEG;IACH,IAAa,MAAM;;;;MAMlB;IAED,OAAO,CAAC,OAAO;IAKf,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,sBAAsB,GAEjC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;gBAEW,IAAI,EAAE,IAAI;IAgBtB;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACM,OAAO;IAKhB,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,aAAa;IAkFrB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAcf,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;CAU3B"}
|
|
@@ -167,10 +167,8 @@ export class NerdStats extends UICorePlugin {
|
|
|
167
167
|
this.$el.show();
|
|
168
168
|
this.statsBoxElem.scrollTop(this.statsBoxElem.scrollTop());
|
|
169
169
|
this.open = true;
|
|
170
|
-
this.refreshSpeedTest();
|
|
171
170
|
initSpeedTest(this.speedtestMetrics)
|
|
172
171
|
.then(() => {
|
|
173
|
-
trace(`${T} show initSpeedTest ready`);
|
|
174
172
|
startSpeedtest();
|
|
175
173
|
})
|
|
176
174
|
.catch((e) => {
|
|
@@ -200,7 +198,6 @@ export class NerdStats extends UICorePlugin {
|
|
|
200
198
|
.text(this.metrics.general.resolution.height);
|
|
201
199
|
}
|
|
202
200
|
estimateQuality() {
|
|
203
|
-
trace(`${T} estimateQuality`);
|
|
204
201
|
const videoQualityNames = [
|
|
205
202
|
'SD (480p)',
|
|
206
203
|
'HD (720p)',
|
|
@@ -225,7 +222,6 @@ export class NerdStats extends UICorePlugin {
|
|
|
225
222
|
prefix + videoQualityNames[liveQuality - 1];
|
|
226
223
|
}
|
|
227
224
|
updateMetrics(metrics) {
|
|
228
|
-
trace(`${T} updateMetrics`, { custom: this.speedtestMetrics });
|
|
229
225
|
Object.assign(this.metrics, metrics);
|
|
230
226
|
this.metrics.custom = {
|
|
231
227
|
...this.speedtestMetrics,
|
|
@@ -373,9 +369,9 @@ export class NerdStats extends UICorePlugin {
|
|
|
373
369
|
clearSpeedTestResults();
|
|
374
370
|
drawSpeedTestResults();
|
|
375
371
|
}, 200);
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
372
|
+
setTimeout(() => {
|
|
373
|
+
startSpeedtest();
|
|
374
|
+
}, 800);
|
|
379
375
|
}
|
|
380
376
|
formatPlaybackName(playbackType) {
|
|
381
377
|
switch (playbackType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Speedtest.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;AAEnD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;AAIrD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,eAAe,CAAsB;IAE7C,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,SAAS,CAA8B;IAE/C,OAAO,CAAC,cAAc,CAAK;IAE3B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAO;IAE/B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAO;IAErC,QAAQ;IAIR,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAY9C,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAiCrC,YAAY,CAAC,MAAM,EAAE,MAAM;IAY3B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IAM5B,iBAAiB;IAQjB,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAShC,YAAY,CAAC,MAAM,EAAE,cAAc;IA0KnC,KAAK;
|
|
1
|
+
{"version":3,"file":"Speedtest.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/Speedtest.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAID,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;IACjB,YAAY,EAAE,CAAC,GAAG,CAAC,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;AAEnD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;AAIrD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,eAAe,CAAsB;IAE7C,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,SAAS,CAA8B;IAE/C,OAAO,CAAC,cAAc,CAAK;IAE3B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAO;IAE/B,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAO;IAErC,QAAQ;IAIR,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAY9C,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAiCrC,YAAY,CAAC,MAAM,EAAE,MAAM;IAY3B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;IAM5B,iBAAiB;IAQjB,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAShC,YAAY,CAAC,MAAM,EAAE,cAAc;IA0KnC,KAAK;IAsEL,KAAK;IASL,OAAO,CAAC,UAAU;CAUnB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { reportError
|
|
1
|
+
import { reportError } from '@gcorevideo/utils';
|
|
2
2
|
import SpeedtestWorkerModule from '../../../../assets/clappr-nerd-stats/speedtest/speedtest.worker.js';
|
|
3
|
-
const T = 'plugins.clappr_nerd_stats.speedtest.Speedtest';
|
|
3
|
+
// const T = 'plugins.clappr_nerd_stats.speedtest.Speedtest';
|
|
4
4
|
export class Speedtest {
|
|
5
5
|
worker = null;
|
|
6
6
|
workerUrl = null;
|
|
@@ -311,7 +311,6 @@ export class Speedtest {
|
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
this._state = 3;
|
|
314
|
-
trace(`${T} start`, { state: this._state, server: this._selectedServer, settings: this._settings });
|
|
315
314
|
// TODO don't run until properly initialized (url_ping, etc)
|
|
316
315
|
this.worker.postMessage('start ' + JSON.stringify(this._settings));
|
|
317
316
|
// ... [rest of the logic remains unchanged] ...
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/clappr-nerd-stats/speedtest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAkC,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqC9C,wBAAgB,oBAAoB,SAmBnC;AAID,eAAO,MAAM,aAAa,kBAAmB,gBAAgB,KAAG,OAAO,CAAC,IAAI,CA+E3E,CAAC;AAEF,eAAO,MAAM,aAAa,YAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,YAI1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,YAEjC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAGnD"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { trace } from '@gcorevideo/utils';
|
|
2
1
|
import { Speedtest } from './Speedtest.js';
|
|
3
2
|
const DIGITS_THRESHOLD = 99999;
|
|
4
3
|
const DEFAULT_DOWNLOAD_SPEED = '0.00';
|
|
5
4
|
const DRAW_SIZE = 5;
|
|
6
|
-
const T = 'plugins.clappr_nerd_stats.speedtest';
|
|
5
|
+
// const T = 'plugins.clappr_nerd_stats.speedtest';
|
|
7
6
|
function limitDigits(value) {
|
|
8
7
|
return value > DIGITS_THRESHOLD ? '> ' + DIGITS_THRESHOLD : value.toFixed(2);
|
|
9
8
|
}
|
|
@@ -31,7 +30,6 @@ const getColor = (speedValue) => {
|
|
|
31
30
|
}
|
|
32
31
|
};
|
|
33
32
|
export function drawSpeedTestResults() {
|
|
34
|
-
trace(`${T} drawSpeedTestResults`);
|
|
35
33
|
const canvas = document.getElementById('nerd-stats-speed-test-canvas');
|
|
36
34
|
if (!canvas) {
|
|
37
35
|
return;
|
|
@@ -54,7 +52,6 @@ export const initSpeedTest = (customMetrics) => {
|
|
|
54
52
|
return inited;
|
|
55
53
|
}
|
|
56
54
|
inited = (async () => {
|
|
57
|
-
trace(`${T} initSpeedTest run`);
|
|
58
55
|
// TODO: fix server selection
|
|
59
56
|
// const response = await fetch('https://iam.gcdn.co/info/json');
|
|
60
57
|
// const data = await response.json();
|
|
@@ -109,7 +106,6 @@ export const initSpeedTest = (customMetrics) => {
|
|
|
109
106
|
await fetch('https://iam.gcdn.co/info/json')
|
|
110
107
|
.then(r => r.json())
|
|
111
108
|
.then(data => {
|
|
112
|
-
trace(`${T} initSpeedTest fetched`);
|
|
113
109
|
const country = data['Server Country code'].toLowerCase();
|
|
114
110
|
const server = serversList.find(s => s.country === country) || serversList[0];
|
|
115
111
|
if (!server) {
|
|
@@ -117,7 +113,6 @@ export const initSpeedTest = (customMetrics) => {
|
|
|
117
113
|
}
|
|
118
114
|
speedTest.addTestPoint(server);
|
|
119
115
|
speedTest.setSelectedServer(server);
|
|
120
|
-
trace(`${T} initSpeedTest done`);
|
|
121
116
|
});
|
|
122
117
|
})();
|
|
123
118
|
return inited;
|
|
@@ -128,13 +123,11 @@ export const stopSpeedtest = () => {
|
|
|
128
123
|
}
|
|
129
124
|
};
|
|
130
125
|
export const startSpeedtest = () => {
|
|
131
|
-
trace(`${T} startSpeedtest`);
|
|
132
126
|
if (speedTest.getState() !== 3) {
|
|
133
127
|
speedTest.start();
|
|
134
128
|
}
|
|
135
129
|
};
|
|
136
130
|
export const clearSpeedTestResults = () => {
|
|
137
|
-
trace(`${T} clearSpeedTestResults`);
|
|
138
131
|
speedtestResults.splice(0, speedtestResults.length);
|
|
139
132
|
};
|
|
140
133
|
export function configureSpeedTest(servers) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClapprStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/ClapprStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAwB,MAAM,cAAc,CAAA;AAU/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAMpD,cAAc,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"ClapprStats.d.ts","sourceRoot":"","sources":["../../../src/plugins/clappr-stats/ClapprStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAwB,MAAM,cAAc,CAAA;AAU/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAMpD,cAAc,YAAY,CAAA;AAM1B,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,sBAAsB,CAAI;IAElC,OAAO,CAAC,OAAO,CAAmC;IAElD,OAAO,CAAC,MAAM,CAMb;IAED,OAAO,CAAC,OAAO,CAAQ;IAEvB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,GAAG;IASX,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,IAAI;gBAIA,SAAS,EAAE,SAAS;IAKhC;;OAEG;IACM,UAAU;IAqDnB;;OAEG;IACM,OAAO;IAKhB;;;OAGG;IACH,aAAa;IAIb,YAAY;IAIZ,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,aAAa;CA0BtB"}
|
|
@@ -3,6 +3,7 @@ import { CLAPPR_VERSION } from '../../build.js';
|
|
|
3
3
|
import { ClapprStatsEvents, ClapprStatsChronograph, ClapprStatsCounter, } from './types.js';
|
|
4
4
|
export * from './types.js';
|
|
5
5
|
import { newMetrics } from './utils.js';
|
|
6
|
+
import { isFullscreen } from '../utils/fullscreen.js';
|
|
6
7
|
/**
|
|
7
8
|
* `PLUGIN` that measures data about playback, which can be useful for analyzing performance and UX.
|
|
8
9
|
* @beta
|
|
@@ -78,7 +79,11 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
78
79
|
this.listenToOnce(this.container, CoreEvents.CONTAINER_STATE_BUFFERING, this.onBuffering);
|
|
79
80
|
this.listenTo(this.container, CoreEvents.CONTAINER_SEEK, this.onSeek);
|
|
80
81
|
this.listenTo(this.container, CoreEvents.CONTAINER_ERROR, () => this.inc(ClapprStatsCounter.Error));
|
|
81
|
-
this.listenTo(this.container, CoreEvents.CONTAINER_FULLSCREEN, () =>
|
|
82
|
+
this.listenTo(this.container, CoreEvents.CONTAINER_FULLSCREEN, () => {
|
|
83
|
+
if (isFullscreen(this.container.el)) {
|
|
84
|
+
this.inc(ClapprStatsCounter.Fullscreen);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
82
87
|
this.listenTo(this.container, CoreEvents.CONTAINER_PLAYBACKDVRSTATECHANGED, (dvrInUse) => {
|
|
83
88
|
dvrInUse && this.inc(ClapprStatsCounter.DvrUsage);
|
|
84
89
|
});
|
|
@@ -146,8 +151,9 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
146
151
|
this.stopListening(this.container, CoreEvents.CONTAINER_TIMEUPDATE, this.onContainerUpdateWhilePlaying);
|
|
147
152
|
}
|
|
148
153
|
onSeek(e) {
|
|
154
|
+
const ms = e * 1000;
|
|
149
155
|
this.inc(ClapprStatsCounter.Seek);
|
|
150
|
-
this.metrics.extra.watchHistory.push([
|
|
156
|
+
this.metrics.extra.watchHistory.push([ms, ms]);
|
|
151
157
|
}
|
|
152
158
|
onTimeUpdate(e) {
|
|
153
159
|
const current = e.current * 1000, total = e.total * 1000, l = this.metrics.extra.watchHistory.length;
|
|
@@ -134,7 +134,6 @@ export declare class MediaControl extends UICorePlugin {
|
|
|
134
134
|
'click [data-stop]': string;
|
|
135
135
|
'click [data-playstop]': string;
|
|
136
136
|
'click [data-fullscreen]': string;
|
|
137
|
-
'click .bar-container[data-seekbar]': string;
|
|
138
137
|
'click .bar-container[data-volume]': string;
|
|
139
138
|
'click .drawer-icon[data-volume]': string;
|
|
140
139
|
'mouseenter .drawer-container[data-volume]': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -182,7 +182,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
182
182
|
'click [data-stop]': 'stop',
|
|
183
183
|
'click [data-playstop]': 'togglePlayStop',
|
|
184
184
|
'click [data-fullscreen]': 'handleFullScreenOnBtn',
|
|
185
|
-
'click .bar-container[data-seekbar]': 'seek',
|
|
185
|
+
// 'click .bar-container[data-seekbar]': 'seek', // This together with global window.bind causes duplicate seeks events
|
|
186
186
|
'click .bar-container[data-volume]': 'onVolumeClick',
|
|
187
187
|
'click .drawer-icon[data-volume]': 'toggleMute',
|
|
188
188
|
'mouseenter .drawer-container[data-volume]': 'showVolumeBar',
|
|
@@ -489,12 +489,14 @@ export class MediaControl extends UICorePlugin {
|
|
|
489
489
|
event && event.preventDefault();
|
|
490
490
|
}
|
|
491
491
|
stopDrag = (event) => {
|
|
492
|
-
this.draggingSeekBar
|
|
492
|
+
if (this.draggingSeekBar) {
|
|
493
|
+
this.draggingSeekBar = false;
|
|
494
|
+
this.seek(event);
|
|
495
|
+
}
|
|
493
496
|
this.$el.removeClass('dragging');
|
|
494
497
|
this.$seekBarLoaded?.removeClass('media-control-notransition');
|
|
495
498
|
this.$seekBarPosition?.removeClass('media-control-notransition');
|
|
496
499
|
this.$seekBarScrubber?.removeClass('media-control-notransition dragging');
|
|
497
|
-
this.draggingSeekBar = false;
|
|
498
500
|
this.draggingVolumeBar = false;
|
|
499
501
|
};
|
|
500
502
|
updateDrag = (event) => {
|
|
@@ -506,8 +508,9 @@ export class MediaControl extends UICorePlugin {
|
|
|
506
508
|
let pos = (offsetX / this.$seekBarContainer.width()) * 100;
|
|
507
509
|
pos = Math.min(100, Math.max(pos, 0));
|
|
508
510
|
this.setSeekPercentage(pos);
|
|
511
|
+
return;
|
|
509
512
|
}
|
|
510
|
-
|
|
513
|
+
if (this.draggingVolumeBar) {
|
|
511
514
|
event.preventDefault();
|
|
512
515
|
this.setVolume(this.getVolumeFromUIEvent(event));
|
|
513
516
|
}
|
|
@@ -677,13 +680,13 @@ export class MediaControl extends UICorePlugin {
|
|
|
677
680
|
if (!this.settings.seekEnabled) {
|
|
678
681
|
return;
|
|
679
682
|
}
|
|
683
|
+
// TODO prevent double seek
|
|
680
684
|
assert.ok(this.$seekBarContainer, 'seek bar container must be present');
|
|
681
685
|
const offsetX = MediaControl.getPageX(event) - this.$seekBarContainer.offset().left;
|
|
682
686
|
let pos = (offsetX / this.$seekBarContainer.width()) * 100;
|
|
683
687
|
pos = Math.min(100, Math.max(pos, 0));
|
|
684
688
|
this.core.activeContainer && this.core.activeContainer.seekPercentage(pos);
|
|
685
689
|
this.setSeekPercentage(pos);
|
|
686
|
-
return false;
|
|
687
690
|
}
|
|
688
691
|
setUserKeepVisible() {
|
|
689
692
|
this.userKeepVisible = true;
|
|
@@ -756,13 +759,11 @@ export class MediaControl extends UICorePlugin {
|
|
|
756
759
|
}
|
|
757
760
|
}
|
|
758
761
|
updateSettings() {
|
|
759
|
-
trace(`${T} updateSettings`, { settings: this.settings });
|
|
760
762
|
const newSettings = $.extend(true, {
|
|
761
763
|
left: [],
|
|
762
764
|
default: [],
|
|
763
765
|
right: [],
|
|
764
766
|
}, this.core.activeContainer.settings);
|
|
765
|
-
trace(`${T} updateSettings`, { newSettings });
|
|
766
767
|
newSettings.left.push('clips'); // TODO settings
|
|
767
768
|
// TODO make order controlled via CSS
|
|
768
769
|
newSettings.left = orderByOrderPattern([...newSettings.left, 'volume', 'clips'], LEFT_ORDER);
|
|
@@ -774,11 +775,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
774
775
|
newSettings.right = DEFAULT_SETTINGS.right; // TODO get from the options
|
|
775
776
|
if ((!this.fullScreenOnVideoTagSupported && !fullscreenEnabled()) ||
|
|
776
777
|
this.options.fullscreenDisable) {
|
|
777
|
-
trace(`${T} updateSettings removing fullscreen`, {
|
|
778
|
-
supported: this.fullScreenOnVideoTagSupported,
|
|
779
|
-
enabled: Fullscreen.fullscreenEnabled(),
|
|
780
|
-
optionsDisable: this.options.fullscreenDisable,
|
|
781
|
-
});
|
|
782
778
|
// remove fullscreen from settings if it is not available
|
|
783
779
|
removeArrayItem(newSettings.default, 'fullscreen');
|
|
784
780
|
removeArrayItem(newSettings.left, 'fullscreen');
|
|
@@ -841,7 +837,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
841
837
|
*/
|
|
842
838
|
mount(name, element) {
|
|
843
839
|
const panel = this.getElementLocation(name);
|
|
844
|
-
trace(`${T} mount`, { name, panel: !!panel });
|
|
845
840
|
if (panel) {
|
|
846
841
|
const current = panel.find(`[data-${name}]`);
|
|
847
842
|
element.attr(`data-${name}`, '');
|
|
@@ -1037,14 +1032,11 @@ export class MediaControl extends UICorePlugin {
|
|
|
1037
1032
|
* @internal
|
|
1038
1033
|
*/
|
|
1039
1034
|
render() {
|
|
1040
|
-
trace(`${T} render`, {
|
|
1041
|
-
needsUpdate: this.hasUpdate,
|
|
1042
|
-
metadataLoaded: this.metadataLoaded,
|
|
1043
|
-
});
|
|
1044
1035
|
if (!this.hasUpdate || !this.metadataLoaded) {
|
|
1045
1036
|
return this;
|
|
1046
1037
|
}
|
|
1047
1038
|
const timeout = this.options.hideMediaControlDelay || 2000;
|
|
1039
|
+
trace(`${T} render`, { settings: this.settings });
|
|
1048
1040
|
this.$el.html(MediaControl.template({ settings: this.settings }));
|
|
1049
1041
|
// const style = Styler.getStyleFor(mediaControlStyle, { baseUrl: this.options.baseUrl });
|
|
1050
1042
|
// this.$el.append(style[0]);
|
|
@@ -1167,12 +1159,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
1167
1159
|
return isFinite(this.core.activePlayback.getDuration());
|
|
1168
1160
|
}
|
|
1169
1161
|
getElementLocation(name) {
|
|
1170
|
-
trace(`${T} getElementLocation`, {
|
|
1171
|
-
name,
|
|
1172
|
-
right: this.settings.right,
|
|
1173
|
-
left: this.settings.left,
|
|
1174
|
-
default: this.settings.default,
|
|
1175
|
-
});
|
|
1176
1162
|
if (this.settings.right?.includes(name)) {
|
|
1177
1163
|
return this.getRightPanel();
|
|
1178
1164
|
}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import { UICorePlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/seek-time/seek-time.scss';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Configuration options for the SeekTime plugin.
|
|
5
5
|
* @beta
|
|
6
6
|
*/
|
|
7
|
+
export type SeekTimeSettings = {
|
|
8
|
+
/**
|
|
9
|
+
* Whether to show the duration of the video. Applies only to the VOD streams.
|
|
10
|
+
* @beta
|
|
11
|
+
*/
|
|
12
|
+
duration?: boolean;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* `PLUGIN` that adds a seek time indicator when the mouse pointer is over the seek bar.
|
|
16
|
+
* @beta
|
|
17
|
+
* @remarks
|
|
18
|
+
* Configuration options - {@link SeekTimeSettings}
|
|
19
|
+
*/
|
|
7
20
|
export declare class SeekTime extends UICorePlugin {
|
|
8
21
|
get name(): string;
|
|
9
22
|
get supportedVersion(): {
|
|
@@ -12,18 +25,14 @@ export declare class SeekTime extends UICorePlugin {
|
|
|
12
25
|
private static readonly template;
|
|
13
26
|
get attributes(): {
|
|
14
27
|
class: string;
|
|
15
|
-
'data-seek-time': string;
|
|
16
28
|
};
|
|
17
29
|
private get isLiveStreamWithDvr();
|
|
18
|
-
private get
|
|
30
|
+
private get showDuration();
|
|
19
31
|
private hoveringOverSeekBar;
|
|
20
32
|
private hoverPosition;
|
|
21
33
|
private displayedDuration;
|
|
22
34
|
private displayedSeekTime;
|
|
23
35
|
private duration;
|
|
24
|
-
private rendered;
|
|
25
|
-
private $durationEl;
|
|
26
|
-
private $seekTimeEl;
|
|
27
36
|
/**
|
|
28
37
|
* @internal
|
|
29
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SeekTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/seek-time/SeekTime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,YAAY,EAAmB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"SeekTime.d.ts","sourceRoot":"","sources":["../../../src/plugins/seek-time/SeekTime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,YAAY,EAAmB,MAAM,cAAc,CAAA;AAO9E,OAAO,0CAA0C,CAAA;AAEjD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAMD;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD,IAAa,UAAU;;MAItB;IAED,OAAO,KAAK,mBAAmB,GAM9B;IAED,OAAO,KAAK,YAAY,GAKvB;IAED,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO,CAAC,aAAa,CAAI;IAEzB,OAAO,CAAC,iBAAiB,CAAsB;IAE/C,OAAO,CAAC,iBAAiB,CAAsB;IAE/C,OAAO,CAAC,QAAQ,CAAI;IAEpB;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,MAAM;IA6Cd,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACM,MAAM;IAQf,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style
|
|
3
3
|
// license that can be found at https://github.com/clappr/clappr-plugins/blob/master/LICENSE
|
|
4
4
|
import { Events, Playback, UICorePlugin, Utils, template } from '@clappr/core';
|
|
5
|
+
import assert from 'assert';
|
|
5
6
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
6
7
|
import seekTimeHTML from '../../../assets/seek-time/seek-time.html';
|
|
7
8
|
import '../../../assets/seek-time/seek-time.scss';
|
|
8
|
-
import assert from 'assert';
|
|
9
9
|
const { formatTime } = Utils;
|
|
10
|
+
// const T = 'plugins.seek_time'
|
|
10
11
|
/**
|
|
11
|
-
* `PLUGIN` that adds a seek time indicator
|
|
12
|
+
* `PLUGIN` that adds a seek time indicator when the mouse pointer is over the seek bar.
|
|
12
13
|
* @beta
|
|
14
|
+
* @remarks
|
|
15
|
+
* Configuration options - {@link SeekTimeSettings}
|
|
13
16
|
*/
|
|
14
17
|
export class SeekTime extends UICorePlugin {
|
|
15
18
|
get name() {
|
|
@@ -22,7 +25,6 @@ export class SeekTime extends UICorePlugin {
|
|
|
22
25
|
get attributes() {
|
|
23
26
|
return {
|
|
24
27
|
class: 'seek-time',
|
|
25
|
-
'data-seek-time': '',
|
|
26
28
|
};
|
|
27
29
|
}
|
|
28
30
|
get isLiveStreamWithDvr() {
|
|
@@ -30,23 +32,21 @@ export class SeekTime extends UICorePlugin {
|
|
|
30
32
|
this.core.activeContainer.getPlaybackType() === Playback.LIVE &&
|
|
31
33
|
this.core.activeContainer.isDvrEnabled());
|
|
32
34
|
}
|
|
33
|
-
get
|
|
34
|
-
return
|
|
35
|
+
get showDuration() {
|
|
36
|
+
return (this.core.options.seekTime?.duration === true &&
|
|
37
|
+
this.core.activeContainer?.getPlaybackType() !== Playback.LIVE);
|
|
35
38
|
}
|
|
36
39
|
hoveringOverSeekBar = false;
|
|
37
40
|
hoverPosition = 0;
|
|
38
41
|
displayedDuration = null;
|
|
39
42
|
displayedSeekTime = null;
|
|
40
43
|
duration = 0;
|
|
41
|
-
// private firstFragDateTime = 0;
|
|
42
|
-
rendered = false;
|
|
43
|
-
$durationEl = null;
|
|
44
|
-
$seekTimeEl = null;
|
|
45
44
|
/**
|
|
46
45
|
* @internal
|
|
47
46
|
*/
|
|
48
47
|
bindEvents() {
|
|
49
48
|
this.listenTo(this.core, Events.CORE_READY, this.onCoreReady);
|
|
49
|
+
this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged);
|
|
50
50
|
}
|
|
51
51
|
onCoreReady() {
|
|
52
52
|
const mediaControl = this.core.getPlugin('media_control');
|
|
@@ -54,11 +54,6 @@ export class SeekTime extends UICorePlugin {
|
|
|
54
54
|
this.listenTo(mediaControl, Events.MEDIACONTROL_RENDERED, this.mount);
|
|
55
55
|
this.listenTo(mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime);
|
|
56
56
|
this.listenTo(mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime);
|
|
57
|
-
this.listenTo(mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged);
|
|
58
|
-
if (this.core.activeContainer) {
|
|
59
|
-
this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update);
|
|
60
|
-
this.listenTo(this.core.activeContainer, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate);
|
|
61
|
-
}
|
|
62
57
|
}
|
|
63
58
|
onContainerChanged() {
|
|
64
59
|
this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update);
|
|
@@ -84,41 +79,37 @@ export class SeekTime extends UICorePlugin {
|
|
|
84
79
|
this.hoverPosition = Math.min(1, Math.max(offset / mediaControl.$seekBarContainer.width(), 0));
|
|
85
80
|
}
|
|
86
81
|
getSeekTime() {
|
|
87
|
-
|
|
82
|
+
return this.isLiveStreamWithDvr
|
|
88
83
|
? this.duration - this.hoverPosition * this.duration
|
|
89
84
|
: this.hoverPosition * this.duration;
|
|
90
|
-
return { seekTime };
|
|
91
85
|
}
|
|
92
86
|
update() {
|
|
93
|
-
if (!this.rendered) {
|
|
94
|
-
// update() is always called after a render
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
87
|
if (!this.shouldBeVisible()) {
|
|
98
88
|
this.$el.hide();
|
|
99
89
|
this.$el.css('left', '-100%');
|
|
100
90
|
return;
|
|
101
91
|
}
|
|
102
92
|
const seekTime = this.getSeekTime();
|
|
103
|
-
let currentSeekTime = formatTime(seekTime
|
|
93
|
+
let currentSeekTime = formatTime(seekTime, false);
|
|
104
94
|
if (this.isLiveStreamWithDvr) {
|
|
105
95
|
currentSeekTime = `-${currentSeekTime}`;
|
|
106
96
|
}
|
|
107
97
|
// only update dom if necessary, ie time actually changed
|
|
108
98
|
if (currentSeekTime !== this.displayedSeekTime) {
|
|
109
|
-
this.$
|
|
99
|
+
this.$el.find('#mc-seek-time').text(currentSeekTime);
|
|
110
100
|
this.displayedSeekTime = currentSeekTime;
|
|
111
101
|
}
|
|
112
|
-
|
|
113
|
-
|
|
102
|
+
const $durationEl = this.$el.find('#mc-duration');
|
|
103
|
+
if (this.showDuration) {
|
|
104
|
+
$durationEl.show();
|
|
114
105
|
const currentDuration = formatTime(this.duration, false);
|
|
115
106
|
if (currentDuration !== this.displayedDuration) {
|
|
116
|
-
|
|
107
|
+
$durationEl.text(currentDuration);
|
|
117
108
|
this.displayedDuration = currentDuration;
|
|
118
109
|
}
|
|
119
110
|
}
|
|
120
111
|
else {
|
|
121
|
-
|
|
112
|
+
$durationEl.hide();
|
|
122
113
|
}
|
|
123
114
|
// the element must be unhidden before its width is requested, otherwise it's width will be reported as 0
|
|
124
115
|
this.$el.show();
|
|
@@ -141,16 +132,10 @@ export class SeekTime extends UICorePlugin {
|
|
|
141
132
|
* @internal
|
|
142
133
|
*/
|
|
143
134
|
render() {
|
|
144
|
-
this.rendered = true;
|
|
145
135
|
this.displayedDuration = null;
|
|
146
136
|
this.displayedSeekTime = null;
|
|
147
137
|
this.$el.html(SeekTime.template());
|
|
148
138
|
this.$el.hide();
|
|
149
|
-
// this.mediaControl.$el.append(this.el);
|
|
150
|
-
this.$seekTimeEl = this.$el.find('#mc-seek-time');
|
|
151
|
-
this.$durationEl = this.$el.find('#mc-duration');
|
|
152
|
-
this.$durationEl.hide();
|
|
153
|
-
this.update();
|
|
154
139
|
return this;
|
|
155
140
|
}
|
|
156
141
|
mount() {
|
package/lib/testUtils.d.ts
CHANGED
|
@@ -107,6 +107,7 @@ export declare function createMockContainer(options?: Record<string, unknown>, p
|
|
|
107
107
|
isPlaying: import("vitest").Mock<(...args: any[]) => any>;
|
|
108
108
|
play: import("vitest").Mock<(...args: any[]) => any>;
|
|
109
109
|
seek: import("vitest").Mock<(...args: any[]) => any>;
|
|
110
|
+
seekPercentage: import("vitest").Mock<(...args: any[]) => any>;
|
|
110
111
|
switchAudioTrack: import("vitest").Mock<(...args: any[]) => any>;
|
|
111
112
|
trigger: <T extends string | symbol>(event: T, ...args: any[]) => boolean;
|
|
112
113
|
};
|
package/lib/testUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,YAAY,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,MAAM,MAAM,eAAe,CAAA;AAElC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAM;IAErC,SAAS,CAAC,OAAO,EAAE,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,GAAG;IAClB,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG;gBAFjB,OAAO,EAAE,GAAG,EACb,IAAI,EAAE,GAAG,EACR,WAAW,CAAC,EAAE,GAAG,YAAA;IAK7B,IAAI,IAAI,WAEP;IAED,OAAO;IAEP,IAAI;IAEJ,KAAK;IAEL,IAAI;IAEJ,OAAO;IAEP,IAAI;IAEJ,cAAc;IAEd,WAAW;IAIX,QAAQ;IAER,OAAO;IAEP,eAAe;IAIf,kBAAkB;IAIlB,cAAc;IAId,qBAAqB;IAIrB,IAAI;IAEJ,MAAM;IAEN,MAAM;IAEN,SAAS;IAET,eAAe;IAIf,WAAW;IAIX,QAAQ;IAIR,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAGtC;AAED,wBAAgB,cAAc,CAC5B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,SAAS,GAAE,GAAkC;;;;;;;;;;;;;;;;EAqB9C;AAED,wBAAgB,gBAAgB;;;EAK/B;AAED,wBAAgB,mBAAmB;;;;;;EAKlC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC/C;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,GAAE,GAA0B
|
|
1
|
+
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,YAAY,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,MAAM,MAAM,eAAe,CAAA;AAElC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAM;IAErC,SAAS,CAAC,OAAO,EAAE,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,GAAG;IAClB,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG;gBAFjB,OAAO,EAAE,GAAG,EACb,IAAI,EAAE,GAAG,EACR,WAAW,CAAC,EAAE,GAAG,YAAA;IAK7B,IAAI,IAAI,WAEP;IAED,OAAO;IAEP,IAAI;IAEJ,KAAK;IAEL,IAAI;IAEJ,OAAO;IAEP,IAAI;IAEJ,cAAc;IAEd,WAAW;IAIX,QAAQ;IAER,OAAO;IAEP,eAAe;IAIf,kBAAkB;IAIlB,cAAc;IAId,qBAAqB;IAIrB,IAAI;IAEJ,MAAM;IAEN,MAAM;IAEN,SAAS;IAET,eAAe;IAIf,WAAW;IAIX,QAAQ;IAIR,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAGtC;AAED,wBAAgB,cAAc,CAC5B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,SAAS,GAAE,GAAkC;;;;;;;;;;;;;;;;EAqB9C;AAED,wBAAgB,gBAAgB;;;EAK/B;AAED,wBAAgB,mBAAmB;;;;;;EAKlC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkC/C;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,QAAQ,GAAE,GAA0B;;;;;;;;;;;;;;;;EAqBrC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,gBAe/C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,OAe7C"}
|
package/lib/testUtils.js
CHANGED
|
@@ -144,6 +144,7 @@ export function createMockContainer(options = {}, playback = createMockPlayback(
|
|
|
144
144
|
isPlaying: vi.fn().mockReturnValue(false),
|
|
145
145
|
play: vi.fn(),
|
|
146
146
|
seek: vi.fn(),
|
|
147
|
+
seekPercentage: vi.fn(),
|
|
147
148
|
switchAudioTrack: vi.fn(),
|
|
148
149
|
trigger: emitter.emit,
|
|
149
150
|
});
|
package/package.json
CHANGED
|
@@ -245,10 +245,8 @@ export class NerdStats extends UICorePlugin {
|
|
|
245
245
|
this.statsBoxElem.scrollTop(this.statsBoxElem.scrollTop())
|
|
246
246
|
this.open = true
|
|
247
247
|
|
|
248
|
-
this.refreshSpeedTest()
|
|
249
248
|
initSpeedTest(this.speedtestMetrics)
|
|
250
249
|
.then(() => {
|
|
251
|
-
trace(`${T} show initSpeedTest ready`);
|
|
252
250
|
startSpeedtest()
|
|
253
251
|
})
|
|
254
252
|
.catch((e) => {
|
|
@@ -282,7 +280,6 @@ export class NerdStats extends UICorePlugin {
|
|
|
282
280
|
}
|
|
283
281
|
|
|
284
282
|
private estimateQuality() {
|
|
285
|
-
trace(`${T} estimateQuality`)
|
|
286
283
|
const videoQualityNames = [
|
|
287
284
|
'SD (480p)',
|
|
288
285
|
'HD (720p)',
|
|
@@ -312,7 +309,6 @@ export class NerdStats extends UICorePlugin {
|
|
|
312
309
|
}
|
|
313
310
|
|
|
314
311
|
private updateMetrics(metrics: PerfMetrics) {
|
|
315
|
-
trace(`${T} updateMetrics`, { custom: this.speedtestMetrics })
|
|
316
312
|
Object.assign(this.metrics, metrics)
|
|
317
313
|
this.metrics.custom = {
|
|
318
314
|
...this.speedtestMetrics,
|
|
@@ -487,9 +483,9 @@ export class NerdStats extends UICorePlugin {
|
|
|
487
483
|
clearSpeedTestResults()
|
|
488
484
|
drawSpeedTestResults()
|
|
489
485
|
}, 200)
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
486
|
+
setTimeout(() => {
|
|
487
|
+
startSpeedtest()
|
|
488
|
+
}, 800)
|
|
493
489
|
}
|
|
494
490
|
|
|
495
491
|
private formatPlaybackName(playbackType: PlaybackType): string {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { reportError
|
|
1
|
+
import { reportError } from '@gcorevideo/utils'
|
|
2
2
|
|
|
3
3
|
import SpeedtestWorkerModule from '../../../../assets/clappr-nerd-stats/speedtest/speedtest.worker.js'
|
|
4
4
|
|
|
@@ -38,7 +38,7 @@ type UpdateHandler = (data: TestStatusInfo) => void
|
|
|
38
38
|
|
|
39
39
|
type SelectCallback = (server: Server | null) => void
|
|
40
40
|
|
|
41
|
-
const T = 'plugins.clappr_nerd_stats.speedtest.Speedtest';
|
|
41
|
+
// const T = 'plugins.clappr_nerd_stats.speedtest.Speedtest';
|
|
42
42
|
|
|
43
43
|
export class Speedtest {
|
|
44
44
|
private worker: Worker | null = null
|
|
@@ -383,7 +383,6 @@ export class Speedtest {
|
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
385
|
this._state = 3
|
|
386
|
-
trace(`${T} start`, { state: this._state, server: this._selectedServer, settings: this._settings })
|
|
387
386
|
// TODO don't run until properly initialized (url_ping, etc)
|
|
388
387
|
this.worker.postMessage('start ' + JSON.stringify(this._settings))
|
|
389
388
|
|