@gcorevideo/player 2.1.11 → 2.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +53 -19
- package/lib/Player.d.ts +2 -2
- package/lib/Player.d.ts.map +1 -1
- package/lib/Player.js +54 -20
- package/package.json +1 -1
- package/src/Player.ts +203 -167
- package/tsconfig.tsbuildinfo +1 -1
package/dist/index.js
CHANGED
|
@@ -42221,7 +42221,7 @@ HlsPlayback.canPlay = function (resource, mimeType) {
|
|
|
42221
42221
|
return !!(hasSupport && isHls);
|
|
42222
42222
|
};
|
|
42223
42223
|
|
|
42224
|
-
const T =
|
|
42224
|
+
const T = 'GPlayer';
|
|
42225
42225
|
const DEFAULT_OPTIONS = {
|
|
42226
42226
|
autoPlay: false,
|
|
42227
42227
|
mute: false,
|
|
@@ -42285,15 +42285,18 @@ class Player {
|
|
|
42285
42285
|
async init(playerElement) {
|
|
42286
42286
|
assert.ok(!this.player, 'Player already initialized');
|
|
42287
42287
|
assert.ok(playerElement, 'Player container element is required');
|
|
42288
|
-
if (this.config.debug === 'all' ||
|
|
42289
|
-
this.config.debug === 'clappr') {
|
|
42288
|
+
if (this.config.debug === 'all' || this.config.debug === 'clappr') {
|
|
42290
42289
|
Log.setLevel(0);
|
|
42291
42290
|
}
|
|
42292
|
-
trace(`${T} init`, {
|
|
42291
|
+
trace(`${T} init`, {
|
|
42292
|
+
config: this.config,
|
|
42293
|
+
});
|
|
42293
42294
|
this.configurePlaybacks();
|
|
42294
42295
|
const coreOpts = this.buildCoreOptions(playerElement);
|
|
42295
|
-
const { core, container
|
|
42296
|
-
trace(`${T} init`, {
|
|
42296
|
+
const { core, container } = Loader.registeredPlugins;
|
|
42297
|
+
trace(`${T} init`, {
|
|
42298
|
+
registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.name),
|
|
42299
|
+
});
|
|
42297
42300
|
coreOpts.plugins = {
|
|
42298
42301
|
core: Object.values(core),
|
|
42299
42302
|
container: Object.values(container),
|
|
@@ -42302,7 +42305,9 @@ class Player {
|
|
|
42302
42305
|
return this.initPlayer(coreOpts);
|
|
42303
42306
|
}
|
|
42304
42307
|
destroy() {
|
|
42305
|
-
trace(`${T} destroy`, {
|
|
42308
|
+
trace(`${T} destroy`, {
|
|
42309
|
+
player: !!this.player,
|
|
42310
|
+
});
|
|
42306
42311
|
if (this.player) {
|
|
42307
42312
|
this.player.destroy();
|
|
42308
42313
|
this.player = null;
|
|
@@ -42338,13 +42343,18 @@ class Player {
|
|
|
42338
42343
|
Loader.unregisterPlugin(plugin);
|
|
42339
42344
|
}
|
|
42340
42345
|
initPlayer(coreOptions) {
|
|
42341
|
-
trace(`${T} initPlayer`, {
|
|
42346
|
+
trace(`${T} initPlayer`, {
|
|
42347
|
+
coreOptions,
|
|
42348
|
+
});
|
|
42342
42349
|
assert.ok(!this.player, 'Player already initialized');
|
|
42343
42350
|
const player = new Player$1(coreOptions);
|
|
42344
42351
|
this.player = player;
|
|
42345
42352
|
// TODO checks if the whole thing is necessary
|
|
42346
42353
|
this.tuneInTimerId = globalThis.setTimeout(() => {
|
|
42347
|
-
trace(`${T} tuneInTimer`, {
|
|
42354
|
+
trace(`${T} tuneInTimer`, {
|
|
42355
|
+
ready: this.ready,
|
|
42356
|
+
tunedIn: this.tunedIn,
|
|
42357
|
+
});
|
|
42348
42358
|
this.tuneInTimerId = null;
|
|
42349
42359
|
this.tuneIn();
|
|
42350
42360
|
}, 4000);
|
|
@@ -42372,8 +42382,7 @@ class Player {
|
|
|
42372
42382
|
player.core.on(Events$1.CORE_ACTIVE_CONTAINER_CHANGED, () => {
|
|
42373
42383
|
this.bindBitrateChangeHandler();
|
|
42374
42384
|
}, null);
|
|
42375
|
-
if (Browser.isiOS &&
|
|
42376
|
-
player.core.activePlayback) {
|
|
42385
|
+
if (Browser.isiOS && player.core.activePlayback) {
|
|
42377
42386
|
player.core.activePlayback.$el.on('webkitendfullscreen', () => {
|
|
42378
42387
|
try {
|
|
42379
42388
|
player.core.handleFullscreenChange();
|
|
@@ -42383,11 +42392,26 @@ class Player {
|
|
|
42383
42392
|
}
|
|
42384
42393
|
});
|
|
42385
42394
|
}
|
|
42395
|
+
player.core.on(Events$1.CORE_SCREEN_ORIENTATION_CHANGED, ({ orientation }) => {
|
|
42396
|
+
trace(`${T} CORE_SCREEN_ORIENTATION_CHANGED`, { orientation });
|
|
42397
|
+
}, null);
|
|
42398
|
+
player.core.on(Events$1.CORE_RESIZE, ({ width, height }) => {
|
|
42399
|
+
trace(`${T} CORE_RESIZE`, {
|
|
42400
|
+
width,
|
|
42401
|
+
height,
|
|
42402
|
+
});
|
|
42403
|
+
}, null);
|
|
42386
42404
|
if (this.config.autoPlay) {
|
|
42387
42405
|
setTimeout(() => {
|
|
42388
|
-
trace(`${T} autoPlay`, {
|
|
42406
|
+
trace(`${T} autoPlay`, {
|
|
42407
|
+
player: !!this.player,
|
|
42408
|
+
container: !!this.player?.core.activeContainer,
|
|
42409
|
+
playback: this.player?.core.activePlayback.name,
|
|
42410
|
+
});
|
|
42389
42411
|
assert(this.player);
|
|
42390
|
-
this.player.play({
|
|
42412
|
+
this.player.play({
|
|
42413
|
+
autoPlay: true,
|
|
42414
|
+
});
|
|
42391
42415
|
}, 0);
|
|
42392
42416
|
}
|
|
42393
42417
|
}
|
|
@@ -42406,6 +42430,11 @@ class Player {
|
|
|
42406
42430
|
}
|
|
42407
42431
|
setTimeout(() => this.tuneIn(), 0);
|
|
42408
42432
|
},
|
|
42433
|
+
onResize: (newSize) => {
|
|
42434
|
+
trace(`${T} CORE_RESIZE`, {
|
|
42435
|
+
newSize,
|
|
42436
|
+
});
|
|
42437
|
+
},
|
|
42409
42438
|
onPlay: () => {
|
|
42410
42439
|
try {
|
|
42411
42440
|
this.emitter.emit(PlayerEvent.Play);
|
|
@@ -42441,8 +42470,12 @@ class Player {
|
|
|
42441
42470
|
};
|
|
42442
42471
|
buildCoreOptions(playerElement) {
|
|
42443
42472
|
const multisources = this.config.multisources;
|
|
42444
|
-
const mainSource = this.config.playbackType === 'live'
|
|
42445
|
-
|
|
42473
|
+
const mainSource = this.config.playbackType === 'live'
|
|
42474
|
+
? multisources.find((ms) => ms.live !== false)
|
|
42475
|
+
: multisources[0];
|
|
42476
|
+
const mediaSources = mainSource
|
|
42477
|
+
? this.buildMediaSourcesList(mainSource)
|
|
42478
|
+
: [];
|
|
42446
42479
|
// const mainSourceUrl = mediaSources[0];
|
|
42447
42480
|
const poster = mainSource?.poster ?? this.config.poster;
|
|
42448
42481
|
const coreOptions = {
|
|
@@ -42507,7 +42540,7 @@ class Player {
|
|
|
42507
42540
|
addHls();
|
|
42508
42541
|
break;
|
|
42509
42542
|
}
|
|
42510
|
-
Object.values(sources).forEach(s => {
|
|
42543
|
+
Object.values(sources).forEach((s) => {
|
|
42511
42544
|
if (s) {
|
|
42512
42545
|
msl.push(s);
|
|
42513
42546
|
}
|
|
@@ -42524,7 +42557,8 @@ class Player {
|
|
|
42524
42557
|
msl.push(sources.hls);
|
|
42525
42558
|
sources.hls = null;
|
|
42526
42559
|
}
|
|
42527
|
-
if (sources.master?.endsWith('.m3u8') &&
|
|
42560
|
+
if (sources.master?.endsWith('.m3u8') &&
|
|
42561
|
+
HlsPlayback.canPlay(sources.master)) {
|
|
42528
42562
|
msl.push(sources.master);
|
|
42529
42563
|
sources.master = null;
|
|
42530
42564
|
}
|
|
@@ -42660,12 +42694,12 @@ class SentryTracer {
|
|
|
42660
42694
|
}
|
|
42661
42695
|
}
|
|
42662
42696
|
|
|
42663
|
-
var version$1 = "2.1.
|
|
42697
|
+
var version$1 = "2.1.13";
|
|
42664
42698
|
|
|
42665
42699
|
var packages = {
|
|
42666
42700
|
"": {
|
|
42667
42701
|
name: "@gcorevideo/player",
|
|
42668
|
-
version: "2.1.
|
|
42702
|
+
version: "2.1.13",
|
|
42669
42703
|
license: "Apache-2.0",
|
|
42670
42704
|
dependencies: {
|
|
42671
42705
|
"@clappr/core": "^0.11.3",
|
package/lib/Player.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { BitrateInfo, PlaybackType, PlayerPlugin } from
|
|
2
|
-
import { PlayerConfig, PlayerEvent } from
|
|
1
|
+
import type { BitrateInfo, PlaybackType, PlayerPlugin } from './types.js';
|
|
2
|
+
import { PlayerConfig, PlayerEvent } from './types.js';
|
|
3
3
|
import '../assets/style/main.scss';
|
|
4
4
|
type PlayerEventHandler<T extends PlayerEvent> = () => void;
|
|
5
5
|
export type PlaybackModule = 'dash' | 'hls' | 'native';
|
package/lib/Player.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EAEb,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EAEb,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAItD,OAAO,2BAA2B,CAAA;AAIlC,KAAK,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI,MAAM,IAAI,CAAA;AAiB3D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;AAItD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,WAAW,CAA2B;IAE9C,OAAO,CAAC,MAAM,CAAgC;IAE9C,OAAO,CAAC,OAAO,CAAkB;IAEjC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,aAAa,CAA6C;IAElE,OAAO,CAAC,OAAO,CAAQ;IAEvB,IAAI,cAAc,IAAI,cAAc,GAAG,IAAI,CAY1C;IAED,IAAI,OAAO,IAAI,WAAW,GAAG,IAAI,CAEhC;IAED,IAAI,EAAE,QAEL;IAED,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAE3C;gBAEW,MAAM,EAAE,YAAY;IAIhC,EAAE,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAIlE,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAInE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;IAIvC,OAAO,CAAC,SAAS;IAIX,IAAI,CAAC,aAAa,EAAE,WAAW;IAyBrC,OAAO;IAiBP,KAAK;IAKL,IAAI;IAKJ,MAAM,CAAC,IAAI,EAAE,MAAM;IAKnB,IAAI;IAKJ,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY;IAI1C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY;IAI5C,OAAO,CAAC,UAAU;YAqBJ,MAAM;IAmEpB,OAAO,CAAC,MAAM,CAgDb;IAED,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,qBAAqB;CA2D9B"}
|
package/lib/Player.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Browser, Events as ClapprEvents, Log, Player as PlayerClappr, $, Loader, } from '@clappr/core';
|
|
2
2
|
import assert from 'assert';
|
|
3
|
-
import EventLite from
|
|
4
|
-
import { reportError, trace } from
|
|
5
|
-
import { PlayerEvent
|
|
3
|
+
import EventLite from 'event-lite';
|
|
4
|
+
import { reportError, trace } from './trace/index.js';
|
|
5
|
+
import { PlayerEvent } from './types.js';
|
|
6
6
|
import DashPlayback from './plugins/dash-playback/DashPlayback.js';
|
|
7
7
|
import HlsPlayback from './plugins/hls-playback/HlsPlayback.js';
|
|
8
8
|
import '../assets/style/main.scss'; // TODO check if needed
|
|
9
|
-
const T =
|
|
9
|
+
const T = 'GPlayer';
|
|
10
10
|
const DEFAULT_OPTIONS = {
|
|
11
11
|
autoPlay: false,
|
|
12
12
|
mute: false,
|
|
@@ -70,15 +70,18 @@ export class Player {
|
|
|
70
70
|
async init(playerElement) {
|
|
71
71
|
assert.ok(!this.player, 'Player already initialized');
|
|
72
72
|
assert.ok(playerElement, 'Player container element is required');
|
|
73
|
-
if (this.config.debug === 'all' ||
|
|
74
|
-
this.config.debug === 'clappr') {
|
|
73
|
+
if (this.config.debug === 'all' || this.config.debug === 'clappr') {
|
|
75
74
|
Log.setLevel(0);
|
|
76
75
|
}
|
|
77
|
-
trace(`${T} init`, {
|
|
76
|
+
trace(`${T} init`, {
|
|
77
|
+
config: this.config,
|
|
78
|
+
});
|
|
78
79
|
this.configurePlaybacks();
|
|
79
80
|
const coreOpts = this.buildCoreOptions(playerElement);
|
|
80
|
-
const { core, container
|
|
81
|
-
trace(`${T} init`, {
|
|
81
|
+
const { core, container } = Loader.registeredPlugins;
|
|
82
|
+
trace(`${T} init`, {
|
|
83
|
+
registeredPlaybacks: Loader.registeredPlaybacks.map((p) => p.name),
|
|
84
|
+
});
|
|
82
85
|
coreOpts.plugins = {
|
|
83
86
|
core: Object.values(core),
|
|
84
87
|
container: Object.values(container),
|
|
@@ -87,7 +90,9 @@ export class Player {
|
|
|
87
90
|
return this.initPlayer(coreOpts);
|
|
88
91
|
}
|
|
89
92
|
destroy() {
|
|
90
|
-
trace(`${T} destroy`, {
|
|
93
|
+
trace(`${T} destroy`, {
|
|
94
|
+
player: !!this.player,
|
|
95
|
+
});
|
|
91
96
|
if (this.player) {
|
|
92
97
|
this.player.destroy();
|
|
93
98
|
this.player = null;
|
|
@@ -123,13 +128,18 @@ export class Player {
|
|
|
123
128
|
Loader.unregisterPlugin(plugin);
|
|
124
129
|
}
|
|
125
130
|
initPlayer(coreOptions) {
|
|
126
|
-
trace(`${T} initPlayer`, {
|
|
131
|
+
trace(`${T} initPlayer`, {
|
|
132
|
+
coreOptions,
|
|
133
|
+
});
|
|
127
134
|
assert.ok(!this.player, 'Player already initialized');
|
|
128
135
|
const player = new PlayerClappr(coreOptions);
|
|
129
136
|
this.player = player;
|
|
130
137
|
// TODO checks if the whole thing is necessary
|
|
131
138
|
this.tuneInTimerId = globalThis.setTimeout(() => {
|
|
132
|
-
trace(`${T} tuneInTimer`, {
|
|
139
|
+
trace(`${T} tuneInTimer`, {
|
|
140
|
+
ready: this.ready,
|
|
141
|
+
tunedIn: this.tunedIn,
|
|
142
|
+
});
|
|
133
143
|
this.tuneInTimerId = null;
|
|
134
144
|
this.tuneIn();
|
|
135
145
|
}, 4000);
|
|
@@ -157,8 +167,7 @@ export class Player {
|
|
|
157
167
|
player.core.on(ClapprEvents.CORE_ACTIVE_CONTAINER_CHANGED, () => {
|
|
158
168
|
this.bindBitrateChangeHandler();
|
|
159
169
|
}, null);
|
|
160
|
-
if (Browser.isiOS &&
|
|
161
|
-
player.core.activePlayback) {
|
|
170
|
+
if (Browser.isiOS && player.core.activePlayback) {
|
|
162
171
|
player.core.activePlayback.$el.on('webkitendfullscreen', () => {
|
|
163
172
|
try {
|
|
164
173
|
player.core.handleFullscreenChange();
|
|
@@ -168,11 +177,26 @@ export class Player {
|
|
|
168
177
|
}
|
|
169
178
|
});
|
|
170
179
|
}
|
|
180
|
+
player.core.on(ClapprEvents.CORE_SCREEN_ORIENTATION_CHANGED, ({ orientation }) => {
|
|
181
|
+
trace(`${T} CORE_SCREEN_ORIENTATION_CHANGED`, { orientation });
|
|
182
|
+
}, null);
|
|
183
|
+
player.core.on(ClapprEvents.CORE_RESIZE, ({ width, height }) => {
|
|
184
|
+
trace(`${T} CORE_RESIZE`, {
|
|
185
|
+
width,
|
|
186
|
+
height,
|
|
187
|
+
});
|
|
188
|
+
}, null);
|
|
171
189
|
if (this.config.autoPlay) {
|
|
172
190
|
setTimeout(() => {
|
|
173
|
-
trace(`${T} autoPlay`, {
|
|
191
|
+
trace(`${T} autoPlay`, {
|
|
192
|
+
player: !!this.player,
|
|
193
|
+
container: !!this.player?.core.activeContainer,
|
|
194
|
+
playback: this.player?.core.activePlayback.name,
|
|
195
|
+
});
|
|
174
196
|
assert(this.player);
|
|
175
|
-
this.player.play({
|
|
197
|
+
this.player.play({
|
|
198
|
+
autoPlay: true,
|
|
199
|
+
});
|
|
176
200
|
}, 0);
|
|
177
201
|
}
|
|
178
202
|
}
|
|
@@ -191,6 +215,11 @@ export class Player {
|
|
|
191
215
|
}
|
|
192
216
|
setTimeout(() => this.tuneIn(), 0);
|
|
193
217
|
},
|
|
218
|
+
onResize: (newSize) => {
|
|
219
|
+
trace(`${T} CORE_RESIZE`, {
|
|
220
|
+
newSize,
|
|
221
|
+
});
|
|
222
|
+
},
|
|
194
223
|
onPlay: () => {
|
|
195
224
|
try {
|
|
196
225
|
this.emitter.emit(PlayerEvent.Play);
|
|
@@ -226,8 +255,12 @@ export class Player {
|
|
|
226
255
|
};
|
|
227
256
|
buildCoreOptions(playerElement) {
|
|
228
257
|
const multisources = this.config.multisources;
|
|
229
|
-
const mainSource = this.config.playbackType === 'live'
|
|
230
|
-
|
|
258
|
+
const mainSource = this.config.playbackType === 'live'
|
|
259
|
+
? multisources.find((ms) => ms.live !== false)
|
|
260
|
+
: multisources[0];
|
|
261
|
+
const mediaSources = mainSource
|
|
262
|
+
? this.buildMediaSourcesList(mainSource)
|
|
263
|
+
: [];
|
|
231
264
|
// const mainSourceUrl = mediaSources[0];
|
|
232
265
|
const poster = mainSource?.poster ?? this.config.poster;
|
|
233
266
|
const coreOptions = {
|
|
@@ -292,7 +325,7 @@ export class Player {
|
|
|
292
325
|
addHls();
|
|
293
326
|
break;
|
|
294
327
|
}
|
|
295
|
-
Object.values(sources).forEach(s => {
|
|
328
|
+
Object.values(sources).forEach((s) => {
|
|
296
329
|
if (s) {
|
|
297
330
|
msl.push(s);
|
|
298
331
|
}
|
|
@@ -309,7 +342,8 @@ export class Player {
|
|
|
309
342
|
msl.push(sources.hls);
|
|
310
343
|
sources.hls = null;
|
|
311
344
|
}
|
|
312
|
-
if (sources.master?.endsWith('.m3u8') &&
|
|
345
|
+
if (sources.master?.endsWith('.m3u8') &&
|
|
346
|
+
HlsPlayback.canPlay(sources.master)) {
|
|
313
347
|
msl.push(sources.master);
|
|
314
348
|
sources.master = null;
|
|
315
349
|
}
|