@gcorevideo/player 2.22.27 → 2.22.28
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/core.js +1 -1
- package/dist/index.css +1033 -1033
- package/dist/index.js +83 -103
- 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/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/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
|
}
|
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
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { trace } from '@gcorevideo/utils';
|
|
2
1
|
import { type Server, type TestStatusInfo, Speedtest } from './Speedtest.js';
|
|
3
2
|
import { SpeedtestMetrics } from './types.js';
|
|
4
3
|
|
|
@@ -7,7 +6,7 @@ const DEFAULT_DOWNLOAD_SPEED = '0.00';
|
|
|
7
6
|
|
|
8
7
|
const DRAW_SIZE = 5;
|
|
9
8
|
|
|
10
|
-
const T = 'plugins.clappr_nerd_stats.speedtest';
|
|
9
|
+
// const T = 'plugins.clappr_nerd_stats.speedtest';
|
|
11
10
|
|
|
12
11
|
function limitDigits(value: number): string {
|
|
13
12
|
return value > DIGITS_THRESHOLD ? '> ' + DIGITS_THRESHOLD : value.toFixed(2);
|
|
@@ -38,7 +37,6 @@ const getColor = (speedValue: number): string => {
|
|
|
38
37
|
};
|
|
39
38
|
|
|
40
39
|
export function drawSpeedTestResults() {
|
|
41
|
-
trace(`${T} drawSpeedTestResults`);
|
|
42
40
|
const canvas = document.getElementById('nerd-stats-speed-test-canvas');
|
|
43
41
|
if (!canvas) {
|
|
44
42
|
return;
|
|
@@ -66,7 +64,6 @@ export const initSpeedTest = (customMetrics: SpeedtestMetrics): Promise<void> =>
|
|
|
66
64
|
return inited;
|
|
67
65
|
}
|
|
68
66
|
inited = (async () => {
|
|
69
|
-
trace(`${T} initSpeedTest run`);
|
|
70
67
|
// TODO: fix server selection
|
|
71
68
|
// const response = await fetch('https://iam.gcdn.co/info/json');
|
|
72
69
|
// const data = await response.json();
|
|
@@ -130,8 +127,6 @@ export const initSpeedTest = (customMetrics: SpeedtestMetrics): Promise<void> =>
|
|
|
130
127
|
await fetch('https://iam.gcdn.co/info/json')
|
|
131
128
|
.then(r => r.json())
|
|
132
129
|
.then(data => {
|
|
133
|
-
trace(`${T} initSpeedTest fetched`);
|
|
134
|
-
|
|
135
130
|
const country = data['Server Country code'].toLowerCase();
|
|
136
131
|
const server = serversList.find(s => s.country === country) || serversList[0];
|
|
137
132
|
if (!server) {
|
|
@@ -139,7 +134,6 @@ export const initSpeedTest = (customMetrics: SpeedtestMetrics): Promise<void> =>
|
|
|
139
134
|
}
|
|
140
135
|
speedTest.addTestPoint(server);
|
|
141
136
|
speedTest.setSelectedServer(server);
|
|
142
|
-
trace(`${T} initSpeedTest done`);
|
|
143
137
|
});
|
|
144
138
|
})();
|
|
145
139
|
|
|
@@ -153,14 +147,12 @@ export const stopSpeedtest = () => {
|
|
|
153
147
|
};
|
|
154
148
|
|
|
155
149
|
export const startSpeedtest = () => {
|
|
156
|
-
trace(`${T} startSpeedtest`);
|
|
157
150
|
if (speedTest.getState() !== 3) {
|
|
158
151
|
speedTest.start();
|
|
159
152
|
}
|
|
160
153
|
};
|
|
161
154
|
|
|
162
155
|
export const clearSpeedTestResults = () => {
|
|
163
|
-
trace(`${T} clearSpeedTestResults`);
|
|
164
156
|
speedtestResults.splice(0, speedtestResults.length);
|
|
165
157
|
};
|
|
166
158
|
|
|
@@ -16,6 +16,9 @@ import {
|
|
|
16
16
|
} from './types.js'
|
|
17
17
|
export * from './types.js'
|
|
18
18
|
import { newMetrics } from './utils.js'
|
|
19
|
+
import { isFullscreen } from '../utils/fullscreen.js'
|
|
20
|
+
|
|
21
|
+
// const T = 'plugins.clappr_stats'
|
|
19
22
|
|
|
20
23
|
export type ClapprStatsSettings = {
|
|
21
24
|
/**
|
|
@@ -134,9 +137,11 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
134
137
|
this.listenTo(this.container, CoreEvents.CONTAINER_ERROR, () =>
|
|
135
138
|
this.inc(ClapprStatsCounter.Error),
|
|
136
139
|
)
|
|
137
|
-
this.listenTo(this.container, CoreEvents.CONTAINER_FULLSCREEN, () =>
|
|
138
|
-
this.
|
|
139
|
-
|
|
140
|
+
this.listenTo(this.container, CoreEvents.CONTAINER_FULLSCREEN, () => {
|
|
141
|
+
if (isFullscreen(this.container.el)) {
|
|
142
|
+
this.inc(ClapprStatsCounter.Fullscreen)
|
|
143
|
+
}
|
|
144
|
+
})
|
|
140
145
|
this.listenTo(
|
|
141
146
|
this.container,
|
|
142
147
|
CoreEvents.CONTAINER_PLAYBACKDVRSTATECHANGED,
|
|
@@ -251,8 +256,9 @@ export class ClapprStats extends ContainerPlugin {
|
|
|
251
256
|
}
|
|
252
257
|
|
|
253
258
|
private onSeek(e: number) {
|
|
259
|
+
const ms = e * 1000
|
|
254
260
|
this.inc(ClapprStatsCounter.Seek)
|
|
255
|
-
this.metrics.extra.watchHistory.push([
|
|
261
|
+
this.metrics.extra.watchHistory.push([ms, ms])
|
|
256
262
|
}
|
|
257
263
|
|
|
258
264
|
private onTimeUpdate(e: TimePosition) {
|
|
@@ -315,7 +315,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
315
315
|
'click [data-stop]': 'stop',
|
|
316
316
|
'click [data-playstop]': 'togglePlayStop',
|
|
317
317
|
'click [data-fullscreen]': 'handleFullScreenOnBtn',
|
|
318
|
-
'click .bar-container[data-seekbar]': 'seek',
|
|
318
|
+
// 'click .bar-container[data-seekbar]': 'seek', // This together with global window.bind causes duplicate seeks events
|
|
319
319
|
'click .bar-container[data-volume]': 'onVolumeClick',
|
|
320
320
|
'click .drawer-icon[data-volume]': 'toggleMute',
|
|
321
321
|
'mouseenter .drawer-container[data-volume]': 'showVolumeBar',
|
|
@@ -731,12 +731,14 @@ export class MediaControl extends UICorePlugin {
|
|
|
731
731
|
}
|
|
732
732
|
|
|
733
733
|
private stopDrag = (event: MouseEvent) => {
|
|
734
|
-
this.draggingSeekBar
|
|
734
|
+
if (this.draggingSeekBar) {
|
|
735
|
+
this.draggingSeekBar = false
|
|
736
|
+
this.seek(event)
|
|
737
|
+
}
|
|
735
738
|
this.$el.removeClass('dragging')
|
|
736
739
|
this.$seekBarLoaded?.removeClass('media-control-notransition')
|
|
737
740
|
this.$seekBarPosition?.removeClass('media-control-notransition')
|
|
738
741
|
this.$seekBarScrubber?.removeClass('media-control-notransition dragging')
|
|
739
|
-
this.draggingSeekBar = false
|
|
740
742
|
this.draggingVolumeBar = false
|
|
741
743
|
}
|
|
742
744
|
|
|
@@ -752,7 +754,9 @@ export class MediaControl extends UICorePlugin {
|
|
|
752
754
|
pos = Math.min(100, Math.max(pos, 0))
|
|
753
755
|
|
|
754
756
|
this.setSeekPercentage(pos)
|
|
755
|
-
|
|
757
|
+
return
|
|
758
|
+
}
|
|
759
|
+
if (this.draggingVolumeBar) {
|
|
756
760
|
event.preventDefault()
|
|
757
761
|
this.setVolume(this.getVolumeFromUIEvent(event))
|
|
758
762
|
}
|
|
@@ -966,6 +970,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
966
970
|
if (!this.settings.seekEnabled) {
|
|
967
971
|
return
|
|
968
972
|
}
|
|
973
|
+
// TODO prevent double seek
|
|
969
974
|
|
|
970
975
|
assert.ok(this.$seekBarContainer, 'seek bar container must be present')
|
|
971
976
|
const offsetX =
|
|
@@ -976,8 +981,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
976
981
|
this.core.activeContainer && this.core.activeContainer.seekPercentage(pos)
|
|
977
982
|
|
|
978
983
|
this.setSeekPercentage(pos)
|
|
979
|
-
|
|
980
|
-
return false
|
|
981
984
|
}
|
|
982
985
|
|
|
983
986
|
private setUserKeepVisible() {
|
|
@@ -1010,7 +1013,10 @@ export class MediaControl extends UICorePlugin {
|
|
|
1010
1013
|
}
|
|
1011
1014
|
this.$el.show()
|
|
1012
1015
|
this.trigger(Events.MEDIACONTROL_SHOW, this.name)
|
|
1013
|
-
this.core.activeContainer?.trigger(
|
|
1016
|
+
this.core.activeContainer?.trigger(
|
|
1017
|
+
Events.CONTAINER_MEDIACONTROL_SHOW,
|
|
1018
|
+
this.name,
|
|
1019
|
+
)
|
|
1014
1020
|
this.$el.removeClass('media-control-hide')
|
|
1015
1021
|
this.hideId = setTimeout(() => this.hide(), timeout)
|
|
1016
1022
|
if (event) {
|
|
@@ -1067,7 +1073,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
1067
1073
|
}
|
|
1068
1074
|
|
|
1069
1075
|
private updateSettings() {
|
|
1070
|
-
trace(`${T} updateSettings`, { settings: this.settings })
|
|
1071
1076
|
const newSettings = $.extend(
|
|
1072
1077
|
true,
|
|
1073
1078
|
{
|
|
@@ -1077,7 +1082,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
1077
1082
|
},
|
|
1078
1083
|
this.core.activeContainer.settings,
|
|
1079
1084
|
)
|
|
1080
|
-
trace(`${T} updateSettings`, { newSettings })
|
|
1081
1085
|
|
|
1082
1086
|
newSettings.left.push('clips') // TODO settings
|
|
1083
1087
|
// TODO make order controlled via CSS
|
|
@@ -1099,11 +1103,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
1099
1103
|
(!this.fullScreenOnVideoTagSupported && !fullscreenEnabled()) ||
|
|
1100
1104
|
this.options.fullscreenDisable
|
|
1101
1105
|
) {
|
|
1102
|
-
trace(`${T} updateSettings removing fullscreen`, {
|
|
1103
|
-
supported: this.fullScreenOnVideoTagSupported,
|
|
1104
|
-
enabled: Fullscreen.fullscreenEnabled(),
|
|
1105
|
-
optionsDisable: this.options.fullscreenDisable,
|
|
1106
|
-
})
|
|
1107
1106
|
// remove fullscreen from settings if it is not available
|
|
1108
1107
|
removeArrayItem(newSettings.default, 'fullscreen')
|
|
1109
1108
|
removeArrayItem(newSettings.left, 'fullscreen')
|
|
@@ -1183,7 +1182,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
1183
1182
|
*/
|
|
1184
1183
|
mount(name: MediaControlElement, element: ZeptoResult) {
|
|
1185
1184
|
const panel = this.getElementLocation(name)
|
|
1186
|
-
trace(`${T} mount`, { name, panel: !!panel })
|
|
1187
1185
|
if (panel) {
|
|
1188
1186
|
const current = panel.find(`[data-${name}]`)
|
|
1189
1187
|
element.attr(`data-${name}`, '')
|
|
@@ -1415,15 +1413,12 @@ export class MediaControl extends UICorePlugin {
|
|
|
1415
1413
|
* @internal
|
|
1416
1414
|
*/
|
|
1417
1415
|
override render() {
|
|
1418
|
-
trace(`${T} render`, {
|
|
1419
|
-
needsUpdate: this.hasUpdate,
|
|
1420
|
-
metadataLoaded: this.metadataLoaded,
|
|
1421
|
-
})
|
|
1422
1416
|
if (!this.hasUpdate || !this.metadataLoaded) {
|
|
1423
1417
|
return this
|
|
1424
1418
|
}
|
|
1425
1419
|
const timeout = this.options.hideMediaControlDelay || 2000
|
|
1426
1420
|
|
|
1421
|
+
trace(`${T} render`, { settings: this.settings })
|
|
1427
1422
|
this.$el.html(MediaControl.template({ settings: this.settings }))
|
|
1428
1423
|
// const style = Styler.getStyleFor(mediaControlStyle, { baseUrl: this.options.baseUrl });
|
|
1429
1424
|
// this.$el.append(style[0]);
|
|
@@ -1575,12 +1570,6 @@ export class MediaControl extends UICorePlugin {
|
|
|
1575
1570
|
}
|
|
1576
1571
|
|
|
1577
1572
|
private getElementLocation(name: MediaControlElement) {
|
|
1578
|
-
trace(`${T} getElementLocation`, {
|
|
1579
|
-
name,
|
|
1580
|
-
right: this.settings.right,
|
|
1581
|
-
left: this.settings.left,
|
|
1582
|
-
default: this.settings.default,
|
|
1583
|
-
})
|
|
1584
1573
|
if (this.settings.right?.includes(name as MediaControlRightElement)) {
|
|
1585
1574
|
return this.getRightPanel()
|
|
1586
1575
|
}
|