@gcorevideo/player 2.26.2 → 2.26.4
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 +551 -551
- package/dist/index.embed.js +19 -9
- package/dist/index.js +21 -11
- package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
- package/lib/plugins/source-controller/SourceController.js +16 -8
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +4 -2
- package/package.json +1 -1
- package/src/plugins/source-controller/SourceController.ts +19 -11
- package/src/plugins/source-controller/__tests__/SourceController.test.ts +31 -18
- package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +4 -2
- package/tsconfig.tsbuildinfo +1 -1
package/dist/index.embed.js
CHANGED
|
@@ -49865,8 +49865,10 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
49865
49865
|
*/
|
|
49866
49866
|
render() {
|
|
49867
49867
|
this.$el.html(this.template());
|
|
49868
|
-
this.el.firstElementChild?.addEventListener('animationiteration', () => {
|
|
49869
|
-
this.trigger(SpinnerEvents.SYNC
|
|
49868
|
+
this.el.firstElementChild?.addEventListener('animationiteration', (event) => {
|
|
49869
|
+
this.trigger(SpinnerEvents.SYNC, {
|
|
49870
|
+
elapsedTime: event.elapsedTime,
|
|
49871
|
+
});
|
|
49870
49872
|
});
|
|
49871
49873
|
this.container.$el.append(this.$el[0]);
|
|
49872
49874
|
if (this.container.buffering) {
|
|
@@ -50065,20 +50067,29 @@ class SourceController extends CorePlugin {
|
|
|
50065
50067
|
break;
|
|
50066
50068
|
}
|
|
50067
50069
|
});
|
|
50068
|
-
this.core.activePlayback.on(Events
|
|
50069
|
-
|
|
50070
|
+
// this.core.activePlayback.on(Events.PLAYBACK_PLAY, () => {
|
|
50071
|
+
// trace(`${T} on PLAYBACK_PLAY`, {
|
|
50072
|
+
// currentSource: this.sourcesList[this.currentSourceIndex],
|
|
50073
|
+
// retrying: this.active,
|
|
50074
|
+
// })
|
|
50075
|
+
// if (this.active) {
|
|
50076
|
+
// this.reset()
|
|
50077
|
+
// this.core.activeContainer?.getPlugin('poster')?.enable()
|
|
50078
|
+
// this.core.activeContainer?.getPlugin('spinner')?.hide()
|
|
50079
|
+
// }
|
|
50080
|
+
// })
|
|
50081
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PLAY, (_, { autoPlay }) => {
|
|
50082
|
+
trace(`${T$1} onContainerPlay`, {
|
|
50070
50083
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
50071
50084
|
retrying: this.active,
|
|
50072
50085
|
});
|
|
50086
|
+
this.autoPlay = !!autoPlay;
|
|
50073
50087
|
if (this.active) {
|
|
50074
50088
|
this.reset();
|
|
50075
50089
|
this.core.activeContainer?.getPlugin('poster')?.enable();
|
|
50076
50090
|
this.core.activeContainer?.getPlugin('spinner')?.hide();
|
|
50077
50091
|
}
|
|
50078
50092
|
});
|
|
50079
|
-
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PLAY, (_, { autoPlay }) => {
|
|
50080
|
-
this.autoPlay = !!autoPlay;
|
|
50081
|
-
});
|
|
50082
50093
|
}
|
|
50083
50094
|
reset() {
|
|
50084
50095
|
this.active = false;
|
|
@@ -50099,8 +50110,7 @@ class SourceController extends CorePlugin {
|
|
|
50099
50110
|
this.core.load(nextSource.source, nextSource.mimeType);
|
|
50100
50111
|
setTimeout(() => {
|
|
50101
50112
|
trace(`${T$1} retryPlayback playing`, {
|
|
50102
|
-
autoPlay: this.autoPlay
|
|
50103
|
-
});
|
|
50113
|
+
autoPlay: this.autoPlay});
|
|
50104
50114
|
this.core.activeContainer.play({
|
|
50105
50115
|
autoPlay: this.autoPlay,
|
|
50106
50116
|
});
|
package/dist/index.js
CHANGED
|
@@ -43259,7 +43259,7 @@ class Player {
|
|
|
43259
43259
|
}
|
|
43260
43260
|
}
|
|
43261
43261
|
|
|
43262
|
-
var version$1 = "2.26.
|
|
43262
|
+
var version$1 = "2.26.4";
|
|
43263
43263
|
|
|
43264
43264
|
var packages = {
|
|
43265
43265
|
"node_modules/@clappr/core": {
|
|
@@ -51214,8 +51214,10 @@ class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
51214
51214
|
*/
|
|
51215
51215
|
render() {
|
|
51216
51216
|
this.$el.html(this.template());
|
|
51217
|
-
this.el.firstElementChild?.addEventListener('animationiteration', () => {
|
|
51218
|
-
this.trigger(SpinnerEvents.SYNC
|
|
51217
|
+
this.el.firstElementChild?.addEventListener('animationiteration', (event) => {
|
|
51218
|
+
this.trigger(SpinnerEvents.SYNC, {
|
|
51219
|
+
elapsedTime: event.elapsedTime,
|
|
51220
|
+
});
|
|
51219
51221
|
});
|
|
51220
51222
|
this.container.$el.append(this.$el[0]);
|
|
51221
51223
|
if (this.container.buffering) {
|
|
@@ -51414,23 +51416,30 @@ class SourceController extends CorePlugin {
|
|
|
51414
51416
|
break;
|
|
51415
51417
|
}
|
|
51416
51418
|
});
|
|
51417
|
-
this.core.activePlayback.on(Events
|
|
51418
|
-
|
|
51419
|
+
// this.core.activePlayback.on(Events.PLAYBACK_PLAY, () => {
|
|
51420
|
+
// trace(`${T} on PLAYBACK_PLAY`, {
|
|
51421
|
+
// currentSource: this.sourcesList[this.currentSourceIndex],
|
|
51422
|
+
// retrying: this.active,
|
|
51423
|
+
// })
|
|
51424
|
+
// if (this.active) {
|
|
51425
|
+
// this.reset()
|
|
51426
|
+
// this.core.activeContainer?.getPlugin('poster')?.enable()
|
|
51427
|
+
// this.core.activeContainer?.getPlugin('spinner')?.hide()
|
|
51428
|
+
// }
|
|
51429
|
+
// })
|
|
51430
|
+
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PLAY, (_, { autoPlay }) => {
|
|
51431
|
+
trace(`${T$4} onContainerPlay`, {
|
|
51432
|
+
autoPlay,
|
|
51419
51433
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
51420
51434
|
retrying: this.active,
|
|
51421
51435
|
});
|
|
51436
|
+
this.autoPlay = !!autoPlay;
|
|
51422
51437
|
if (this.active) {
|
|
51423
51438
|
this.reset();
|
|
51424
51439
|
this.core.activeContainer?.getPlugin('poster')?.enable();
|
|
51425
51440
|
this.core.activeContainer?.getPlugin('spinner')?.hide();
|
|
51426
51441
|
}
|
|
51427
51442
|
});
|
|
51428
|
-
this.listenTo(this.core.activeContainer, Events$1.CONTAINER_PLAY, (_, { autoPlay }) => {
|
|
51429
|
-
trace(`${T$4} onContainerPlay`, {
|
|
51430
|
-
autoPlay,
|
|
51431
|
-
});
|
|
51432
|
-
this.autoPlay = !!autoPlay;
|
|
51433
|
-
});
|
|
51434
51443
|
}
|
|
51435
51444
|
reset() {
|
|
51436
51445
|
this.active = false;
|
|
@@ -51458,6 +51467,7 @@ class SourceController extends CorePlugin {
|
|
|
51458
51467
|
setTimeout(() => {
|
|
51459
51468
|
trace(`${T$4} retryPlayback playing`, {
|
|
51460
51469
|
autoPlay: this.autoPlay,
|
|
51470
|
+
nextSource,
|
|
51461
51471
|
});
|
|
51462
51472
|
this.core.activeContainer.play({
|
|
51463
51473
|
autoPlay: this.autoPlay,
|
|
@@ -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;AAwBrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAwC9C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,kBAAkB,CAAI;IAE9B,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,IAAI,CAAiB;IAE7B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;gBACS,IAAI,EAAE,UAAU;IAW5B;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,2BAA2B;
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAwC9C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,kBAAkB,CAAI;IAE9B,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,IAAI,CAAiB;IAE7B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;gBACS,IAAI,EAAE,UAAU;IAW5B;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,2BAA2B;IA4DnC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;CACF"}
|
|
@@ -191,23 +191,30 @@ export class SourceController extends CorePlugin {
|
|
|
191
191
|
break;
|
|
192
192
|
}
|
|
193
193
|
});
|
|
194
|
-
this.core.activePlayback.on(Events.PLAYBACK_PLAY, () => {
|
|
195
|
-
|
|
194
|
+
// this.core.activePlayback.on(Events.PLAYBACK_PLAY, () => {
|
|
195
|
+
// trace(`${T} on PLAYBACK_PLAY`, {
|
|
196
|
+
// currentSource: this.sourcesList[this.currentSourceIndex],
|
|
197
|
+
// retrying: this.active,
|
|
198
|
+
// })
|
|
199
|
+
// if (this.active) {
|
|
200
|
+
// this.reset()
|
|
201
|
+
// this.core.activeContainer?.getPlugin('poster')?.enable()
|
|
202
|
+
// this.core.activeContainer?.getPlugin('spinner')?.hide()
|
|
203
|
+
// }
|
|
204
|
+
// })
|
|
205
|
+
this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAY, (_, { autoPlay }) => {
|
|
206
|
+
trace(`${T} onContainerPlay`, {
|
|
207
|
+
autoPlay,
|
|
196
208
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
197
209
|
retrying: this.active,
|
|
198
210
|
});
|
|
211
|
+
this.autoPlay = !!autoPlay;
|
|
199
212
|
if (this.active) {
|
|
200
213
|
this.reset();
|
|
201
214
|
this.core.activeContainer?.getPlugin('poster')?.enable();
|
|
202
215
|
this.core.activeContainer?.getPlugin('spinner')?.hide();
|
|
203
216
|
}
|
|
204
217
|
});
|
|
205
|
-
this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAY, (_, { autoPlay }) => {
|
|
206
|
-
trace(`${T} onContainerPlay`, {
|
|
207
|
-
autoPlay,
|
|
208
|
-
});
|
|
209
|
-
this.autoPlay = !!autoPlay;
|
|
210
|
-
});
|
|
211
218
|
}
|
|
212
219
|
reset() {
|
|
213
220
|
this.active = false;
|
|
@@ -235,6 +242,7 @@ export class SourceController extends CorePlugin {
|
|
|
235
242
|
setTimeout(() => {
|
|
236
243
|
trace(`${T} retryPlayback playing`, {
|
|
237
244
|
autoPlay: this.autoPlay,
|
|
245
|
+
nextSource,
|
|
238
246
|
});
|
|
239
247
|
this.core.activeContainer.play({
|
|
240
248
|
autoPlay: this.autoPlay,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpinnerThreeBounce.d.ts","sourceRoot":"","sources":["../../../src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,SAAS,EAET,iBAAiB,EAElB,MAAM,cAAc,CAAA;AAKrB,OAAO,mDAAmD,CAAA;AAM1D;;;GAGG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,IAAI,yBAAyB;CAC9B;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,OAAO,CAAC,SAAS,CAAQ;IAEzB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,WAAW,CAAuB;IAE1C,OAAO,CAAC,QAAQ,CAAwB;IAExC,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,YAAY,CAAQ;gBAEhB,SAAS,EAAE,SAAS;IAmBhC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAKf;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,SAAM;IAKhB;;OAEG;IACH,IAAI;IAKJ,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,KAAK;IAYb;;OAEG;IACM,MAAM;
|
|
1
|
+
{"version":3,"file":"SpinnerThreeBounce.d.ts","sourceRoot":"","sources":["../../../src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,SAAS,EAET,iBAAiB,EAElB,MAAM,cAAc,CAAA;AAKrB,OAAO,mDAAmD,CAAA;AAM1D;;;GAGG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,IAAI,yBAAyB;CAC9B;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,OAAO,CAAC,SAAS,CAAQ;IAEzB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,WAAW,CAAuB;IAE1C,OAAO,CAAC,QAAQ,CAAwB;IAExC,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,YAAY,CAAQ;gBAEhB,SAAS,EAAE,SAAS;IAmBhC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAKf;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,SAAM;IAKhB;;OAEG;IACH,IAAI;IAKJ,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,KAAK;IAYb;;OAEG;IACM,MAAM;CAgBhB"}
|
|
@@ -130,8 +130,10 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
130
130
|
*/
|
|
131
131
|
render() {
|
|
132
132
|
this.$el.html(this.template());
|
|
133
|
-
this.el.firstElementChild?.addEventListener('animationiteration', () => {
|
|
134
|
-
this.trigger(SpinnerEvents.SYNC
|
|
133
|
+
this.el.firstElementChild?.addEventListener('animationiteration', (event) => {
|
|
134
|
+
this.trigger(SpinnerEvents.SYNC, {
|
|
135
|
+
elapsedTime: event.elapsedTime,
|
|
136
|
+
});
|
|
135
137
|
});
|
|
136
138
|
this.container.$el.append(this.$el[0]);
|
|
137
139
|
if (this.container.buffering) {
|
package/package.json
CHANGED
|
@@ -225,25 +225,32 @@ export class SourceController extends CorePlugin {
|
|
|
225
225
|
}
|
|
226
226
|
},
|
|
227
227
|
)
|
|
228
|
-
this.core.activePlayback.on(Events.PLAYBACK_PLAY, () => {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
})
|
|
228
|
+
// this.core.activePlayback.on(Events.PLAYBACK_PLAY, () => {
|
|
229
|
+
// trace(`${T} on PLAYBACK_PLAY`, {
|
|
230
|
+
// currentSource: this.sourcesList[this.currentSourceIndex],
|
|
231
|
+
// retrying: this.active,
|
|
232
|
+
// })
|
|
233
|
+
// if (this.active) {
|
|
234
|
+
// this.reset()
|
|
235
|
+
// this.core.activeContainer?.getPlugin('poster')?.enable()
|
|
236
|
+
// this.core.activeContainer?.getPlugin('spinner')?.hide()
|
|
237
|
+
// }
|
|
238
|
+
// })
|
|
239
239
|
this.listenTo(
|
|
240
240
|
this.core.activeContainer,
|
|
241
241
|
Events.CONTAINER_PLAY,
|
|
242
242
|
(_: string, { autoPlay }: { autoPlay?: boolean }) => {
|
|
243
243
|
trace(`${T} onContainerPlay`, {
|
|
244
244
|
autoPlay,
|
|
245
|
+
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
246
|
+
retrying: this.active,
|
|
245
247
|
})
|
|
246
248
|
this.autoPlay = !!autoPlay
|
|
249
|
+
if (this.active) {
|
|
250
|
+
this.reset()
|
|
251
|
+
this.core.activeContainer?.getPlugin('poster')?.enable()
|
|
252
|
+
this.core.activeContainer?.getPlugin('spinner')?.hide()
|
|
253
|
+
}
|
|
247
254
|
},
|
|
248
255
|
)
|
|
249
256
|
}
|
|
@@ -275,6 +282,7 @@ export class SourceController extends CorePlugin {
|
|
|
275
282
|
setTimeout(() => {
|
|
276
283
|
trace(`${T} retryPlayback playing`, {
|
|
277
284
|
autoPlay: this.autoPlay,
|
|
285
|
+
nextSource,
|
|
278
286
|
})
|
|
279
287
|
this.core.activeContainer.play({
|
|
280
288
|
autoPlay: this.autoPlay,
|
|
@@ -4,11 +4,14 @@ import FakeTimers from '@sinonjs/fake-timers'
|
|
|
4
4
|
import { SourceController } from '../SourceController'
|
|
5
5
|
import { PlaybackErrorCode } from '../../../playback.types.js'
|
|
6
6
|
import {
|
|
7
|
+
createMockContainer,
|
|
7
8
|
createMockCore,
|
|
8
9
|
createMockPlayback,
|
|
9
10
|
createMockPlugin,
|
|
10
11
|
createSpinnerPlugin,
|
|
11
12
|
} from '../../../testUtils.js'
|
|
13
|
+
import { Events } from '@clappr/core'
|
|
14
|
+
import { SpinnerEvents } from '../../spinner-three-bounce/SpinnerThreeBounce.js'
|
|
12
15
|
|
|
13
16
|
// import { LogTracer, Logger, setTracer } from '@gcorevideo/utils'
|
|
14
17
|
|
|
@@ -77,19 +80,22 @@ describe('SourceController', () => {
|
|
|
77
80
|
describe('on fatal playback failure', () => {
|
|
78
81
|
let core: any
|
|
79
82
|
let nextPlayback: any
|
|
83
|
+
let nextContainer: any
|
|
80
84
|
describe('basically', () => {
|
|
81
85
|
beforeEach(() => {
|
|
82
86
|
core = createMockCore({
|
|
83
87
|
sources: MOCK_SOURCES,
|
|
84
88
|
})
|
|
85
89
|
const _ = new SourceController(core)
|
|
86
|
-
core.emit(
|
|
87
|
-
core.emit(
|
|
88
|
-
core.activePlayback.emit(
|
|
90
|
+
core.emit(Events.CORE_READY)
|
|
91
|
+
core.emit(Events.CORE_ACTIVE_CONTAINER_CHANGED)
|
|
92
|
+
core.activePlayback.emit(Events.PLAYBACK_ERROR, {
|
|
89
93
|
code: PlaybackErrorCode.MediaSourceUnavailable,
|
|
90
94
|
})
|
|
91
|
-
|
|
95
|
+
nextContainer = createMockContainer()
|
|
96
|
+
nextPlayback = nextContainer.playback
|
|
92
97
|
core.activePlayback = nextPlayback
|
|
98
|
+
core.activeContainer = nextContainer
|
|
93
99
|
})
|
|
94
100
|
it('should load the next source after a delay', async () => {
|
|
95
101
|
expect(core.load).not.toHaveBeenCalled()
|
|
@@ -124,7 +130,7 @@ describe('SourceController', () => {
|
|
|
124
130
|
return spinner
|
|
125
131
|
}
|
|
126
132
|
})
|
|
127
|
-
core.emit(
|
|
133
|
+
core.emit(Events.CORE_ACTIVE_CONTAINER_CHANGED)
|
|
128
134
|
})
|
|
129
135
|
it('should disable the poster', async () => {
|
|
130
136
|
expect(poster.disable).toHaveBeenCalled()
|
|
@@ -147,18 +153,22 @@ describe('SourceController', () => {
|
|
|
147
153
|
}
|
|
148
154
|
})
|
|
149
155
|
const _ = new SourceController(core)
|
|
150
|
-
core.emit(
|
|
151
|
-
core.emit(
|
|
152
|
-
core.activePlayback.emit(
|
|
156
|
+
core.emit(Events.CORE_READY)
|
|
157
|
+
core.emit(Events.CORE_ACTIVE_CONTAINER_CHANGED)
|
|
158
|
+
core.activePlayback.emit(Events.PLAYBACK_ERROR, {
|
|
153
159
|
code: PlaybackErrorCode.MediaSourceUnavailable,
|
|
154
160
|
})
|
|
155
|
-
|
|
161
|
+
nextContainer = createMockContainer()
|
|
162
|
+
nextPlayback = nextContainer.playback
|
|
156
163
|
core.activePlayback = nextPlayback
|
|
164
|
+
core.activeContainer = nextContainer
|
|
157
165
|
})
|
|
158
166
|
it('should sync with the spinner before reloading the source', async () => {
|
|
159
167
|
await clock.tickAsync(1000)
|
|
160
168
|
expect(core.load).not.toHaveBeenCalled()
|
|
161
|
-
spinner.emit(
|
|
169
|
+
spinner.emit(SpinnerEvents.SYNC, {
|
|
170
|
+
elapsedTime: 1000,
|
|
171
|
+
})
|
|
162
172
|
expect(core.load).toHaveBeenCalled()
|
|
163
173
|
})
|
|
164
174
|
})
|
|
@@ -171,14 +181,16 @@ describe('SourceController', () => {
|
|
|
171
181
|
sources: MOCK_SOURCES,
|
|
172
182
|
})
|
|
173
183
|
const _ = new SourceController(core)
|
|
174
|
-
core.emit(
|
|
175
|
-
core.emit(
|
|
176
|
-
core.activePlayback.emit(
|
|
184
|
+
core.emit(Events.CORE_READY)
|
|
185
|
+
core.emit(Events.CORE_ACTIVE_CONTAINER_CHANGED)
|
|
186
|
+
core.activePlayback.emit(Events.PLAYBACK_ERROR, {
|
|
177
187
|
code: PlaybackErrorCode.MediaSourceUnavailable,
|
|
178
188
|
})
|
|
179
189
|
await clock.tickAsync(1000)
|
|
180
|
-
|
|
190
|
+
nextContainer = createMockContainer()
|
|
191
|
+
nextPlayback = nextContainer.playback
|
|
181
192
|
core.activePlayback = nextPlayback
|
|
193
|
+
core.activeContainer = nextContainer
|
|
182
194
|
poster = createMockPlugin()
|
|
183
195
|
spinner = createSpinnerPlugin()
|
|
184
196
|
core.activeContainer.getPlugin.mockImplementation((name: string) => {
|
|
@@ -189,9 +201,10 @@ describe('SourceController', () => {
|
|
|
189
201
|
return spinner
|
|
190
202
|
}
|
|
191
203
|
})
|
|
192
|
-
core.emit(
|
|
193
|
-
core.emit(
|
|
194
|
-
nextPlayback.emit(
|
|
204
|
+
core.emit(Events.CORE_READY)
|
|
205
|
+
core.emit(Events.CORE_ACTIVE_CONTAINER_CHANGED)
|
|
206
|
+
nextPlayback.emit(Events.PLAYBACK_PLAY)
|
|
207
|
+
nextContainer.emit(Events.CONTAINER_PLAY, 'Container', {})
|
|
195
208
|
})
|
|
196
209
|
it('should enable the poster', async () => {
|
|
197
210
|
expect(poster.enable).toHaveBeenCalled()
|
|
@@ -206,7 +219,7 @@ describe('SourceController', () => {
|
|
|
206
219
|
it('should do nothing', async () => {
|
|
207
220
|
nextPlayback.emit(event)
|
|
208
221
|
await clock.tickAsync(1000)
|
|
209
|
-
nextPlayback.emit(
|
|
222
|
+
nextPlayback.emit(Events.PLAYBACK_PLAY)
|
|
210
223
|
await clock.tickAsync(1000)
|
|
211
224
|
expect(poster.enable).toHaveBeenCalledTimes(1)
|
|
212
225
|
expect(spinner.hide).toHaveBeenCalledTimes(1)
|
|
@@ -166,8 +166,10 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
166
166
|
*/
|
|
167
167
|
override render() {
|
|
168
168
|
this.$el.html(this.template())
|
|
169
|
-
this.el.firstElementChild?.addEventListener('animationiteration', () => {
|
|
170
|
-
this.trigger(SpinnerEvents.SYNC
|
|
169
|
+
this.el.firstElementChild?.addEventListener('animationiteration', (event) => {
|
|
170
|
+
this.trigger(SpinnerEvents.SYNC, {
|
|
171
|
+
elapsedTime: (event as AnimationEvent).elapsedTime,
|
|
172
|
+
})
|
|
171
173
|
})
|
|
172
174
|
this.container.$el.append(this.$el[0])
|
|
173
175
|
if (this.container.buffering) {
|