eb-player 2.1.5 → 2.3.0
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/build/ebplayer.bundle.js +206 -4
- package/dist/build/ebplayer.bundle.js.map +1 -1
- package/dist/build/types/src/core/lifecycle.d.ts +9 -0
- package/dist/build/types/src/core/lifecycle.d.ts.map +1 -1
- package/dist/build/types/src/eb-player.d.ts +4 -0
- package/dist/build/types/src/eb-player.d.ts.map +1 -1
- package/dist/build/types/src/skin/controls/settings-panel.d.ts.map +1 -1
- package/package.json +7 -4
- package/dist/build/theme-forja.js +0 -1
- package/dist/build/theme-radio.js +0 -1
- package/dist/build/theme-snrt.js +0 -1
- package/dist/build/types/config.d.ts +0 -139
- package/dist/build/types/config.d.ts.map +0 -1
- package/dist/build/types/core/command-handler.d.ts +0 -50
- package/dist/build/types/core/command-handler.d.ts.map +0 -1
- package/dist/build/types/core/config.d.ts +0 -187
- package/dist/build/types/core/config.d.ts.map +0 -1
- package/dist/build/types/core/css/theme-forja.entry.d.ts +0 -2
- package/dist/build/types/core/css/theme-forja.entry.d.ts.map +0 -1
- package/dist/build/types/core/css/theme-radio.entry.d.ts +0 -2
- package/dist/build/types/core/css/theme-radio.entry.d.ts.map +0 -1
- package/dist/build/types/core/css/theme-snrt.entry.d.ts +0 -2
- package/dist/build/types/core/css/theme-snrt.entry.d.ts.map +0 -1
- package/dist/build/types/core/engine-state-sync.d.ts +0 -38
- package/dist/build/types/core/engine-state-sync.d.ts.map +0 -1
- package/dist/build/types/core/event-bus.d.ts +0 -90
- package/dist/build/types/core/event-bus.d.ts.map +0 -1
- package/dist/build/types/core/fsm.d.ts +0 -30
- package/dist/build/types/core/fsm.d.ts.map +0 -1
- package/dist/build/types/core/i18n.d.ts +0 -51
- package/dist/build/types/core/i18n.d.ts.map +0 -1
- package/dist/build/types/core/index.d.ts +0 -23
- package/dist/build/types/core/index.d.ts.map +0 -1
- package/dist/build/types/core/lifecycle.d.ts +0 -96
- package/dist/build/types/core/lifecycle.d.ts.map +0 -1
- package/dist/build/types/core/player-state.d.ts +0 -15
- package/dist/build/types/core/player-state.d.ts.map +0 -1
- package/dist/build/types/core/types.d.ts +0 -85
- package/dist/build/types/core/types.d.ts.map +0 -1
- package/dist/build/types/eb-player-standalone.d.ts +0 -23
- package/dist/build/types/eb-player-standalone.d.ts.map +0 -1
- package/dist/build/types/eb-player.d.ts +0 -56
- package/dist/build/types/eb-player.d.ts.map +0 -1
- package/dist/build/types/engine-state-sync.d.ts +0 -38
- package/dist/build/types/engine-state-sync.d.ts.map +0 -1
- package/dist/build/types/engines/abr/dash.d.ts +0 -56
- package/dist/build/types/engines/abr/dash.d.ts.map +0 -1
- package/dist/build/types/engines/abr/hls.d.ts +0 -105
- package/dist/build/types/engines/abr/hls.d.ts.map +0 -1
- package/dist/build/types/engines/base-engine.d.ts +0 -72
- package/dist/build/types/engines/base-engine.d.ts.map +0 -1
- package/dist/build/types/engines/cdn-loader.d.ts +0 -20
- package/dist/build/types/engines/cdn-loader.d.ts.map +0 -1
- package/dist/build/types/engines/cdn-token-manager.d.ts +0 -137
- package/dist/build/types/engines/cdn-token-manager.d.ts.map +0 -1
- package/dist/build/types/engines/dash.d.ts +0 -79
- package/dist/build/types/engines/dash.d.ts.map +0 -1
- package/dist/build/types/engines/drm.d.ts +0 -54
- package/dist/build/types/engines/drm.d.ts.map +0 -1
- package/dist/build/types/engines/hls-discontinuity-patch.d.ts +0 -43
- package/dist/build/types/engines/hls-discontinuity-patch.d.ts.map +0 -1
- package/dist/build/types/engines/hls.d.ts +0 -53
- package/dist/build/types/engines/hls.d.ts.map +0 -1
- package/dist/build/types/engines/index.d.ts +0 -26
- package/dist/build/types/engines/index.d.ts.map +0 -1
- package/dist/build/types/engines/ios/hls.d.ts +0 -20
- package/dist/build/types/engines/ios/hls.d.ts.map +0 -1
- package/dist/build/types/engines/poster/hls.d.ts +0 -35
- package/dist/build/types/engines/poster/hls.d.ts.map +0 -1
- package/dist/build/types/engines/retry/dash.d.ts +0 -39
- package/dist/build/types/engines/retry/dash.d.ts.map +0 -1
- package/dist/build/types/engines/retry/hls.d.ts +0 -47
- package/dist/build/types/engines/retry/hls.d.ts.map +0 -1
- package/dist/build/types/engines/snapshot/dash.d.ts +0 -55
- package/dist/build/types/engines/snapshot/dash.d.ts.map +0 -1
- package/dist/build/types/engines/snapshot/hls.d.ts +0 -118
- package/dist/build/types/engines/snapshot/hls.d.ts.map +0 -1
- package/dist/build/types/engines/stall-watchdog.d.ts +0 -41
- package/dist/build/types/engines/stall-watchdog.d.ts.map +0 -1
- package/dist/build/types/event-bus.d.ts +0 -54
- package/dist/build/types/event-bus.d.ts.map +0 -1
- package/dist/build/types/fsm.d.ts +0 -27
- package/dist/build/types/fsm.d.ts.map +0 -1
- package/dist/build/types/i18n.d.ts +0 -51
- package/dist/build/types/i18n.d.ts.map +0 -1
- package/dist/build/types/index.d.ts +0 -21
- package/dist/build/types/index.d.ts.map +0 -1
- package/dist/build/types/integrations/ads-manager.d.ts +0 -37
- package/dist/build/types/integrations/ads-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/chromecast-manager.d.ts +0 -50
- package/dist/build/types/integrations/chromecast-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/epg-manager.d.ts +0 -22
- package/dist/build/types/integrations/epg-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/index.d.ts +0 -7
- package/dist/build/types/integrations/index.d.ts.map +0 -1
- package/dist/build/types/integrations/intro-stream-manager.d.ts +0 -33
- package/dist/build/types/integrations/intro-stream-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/p2p-manager.d.ts +0 -42
- package/dist/build/types/integrations/p2p-manager.d.ts.map +0 -1
- package/dist/build/types/integrations/playlist-manager.d.ts +0 -21
- package/dist/build/types/integrations/playlist-manager.d.ts.map +0 -1
- package/dist/build/types/lifecycle.d.ts +0 -64
- package/dist/build/types/lifecycle.d.ts.map +0 -1
- package/dist/build/types/player-state.d.ts +0 -15
- package/dist/build/types/player-state.d.ts.map +0 -1
- package/dist/build/types/skin/bars/bottom-bar.d.ts +0 -16
- package/dist/build/types/skin/bars/bottom-bar.d.ts.map +0 -1
- package/dist/build/types/skin/bars/middle-bar.d.ts +0 -16
- package/dist/build/types/skin/bars/middle-bar.d.ts.map +0 -1
- package/dist/build/types/skin/bars/top-bar.d.ts +0 -15
- package/dist/build/types/skin/bars/top-bar.d.ts.map +0 -1
- package/dist/build/types/skin/base-component.d.ts +0 -69
- package/dist/build/types/skin/base-component.d.ts.map +0 -1
- package/dist/build/types/skin/brand/forja-playlist-bar.d.ts +0 -15
- package/dist/build/types/skin/brand/forja-playlist-bar.d.ts.map +0 -1
- package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts +0 -16
- package/dist/build/types/skin/brand/snrt-radio-carousel.d.ts.map +0 -1
- package/dist/build/types/skin/component-registry.d.ts +0 -16
- package/dist/build/types/skin/component-registry.d.ts.map +0 -1
- package/dist/build/types/skin/controllers/auto-hide.d.ts +0 -27
- package/dist/build/types/skin/controllers/auto-hide.d.ts.map +0 -1
- package/dist/build/types/skin/controllers/keyboard.d.ts +0 -29
- package/dist/build/types/skin/controllers/keyboard.d.ts.map +0 -1
- package/dist/build/types/skin/controls/cast-button.d.ts +0 -15
- package/dist/build/types/skin/controls/cast-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/channel-name.d.ts +0 -16
- package/dist/build/types/skin/controls/channel-name.d.ts.map +0 -1
- package/dist/build/types/skin/controls/forward-button.d.ts +0 -15
- package/dist/build/types/skin/controls/forward-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/fullscreen-button.d.ts +0 -30
- package/dist/build/types/skin/controls/fullscreen-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/info-button.d.ts +0 -10
- package/dist/build/types/skin/controls/info-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/live-sync-button.d.ts +0 -20
- package/dist/build/types/skin/controls/live-sync-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/pip-button.d.ts +0 -21
- package/dist/build/types/skin/controls/pip-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/play-pause-button.d.ts +0 -14
- package/dist/build/types/skin/controls/play-pause-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/rewind-button.d.ts +0 -15
- package/dist/build/types/skin/controls/rewind-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/seekbar.d.ts +0 -48
- package/dist/build/types/skin/controls/seekbar.d.ts.map +0 -1
- package/dist/build/types/skin/controls/settings-panel.d.ts +0 -53
- package/dist/build/types/skin/controls/settings-panel.d.ts.map +0 -1
- package/dist/build/types/skin/controls/share-button.d.ts +0 -11
- package/dist/build/types/skin/controls/share-button.d.ts.map +0 -1
- package/dist/build/types/skin/controls/time-display.d.ts +0 -19
- package/dist/build/types/skin/controls/time-display.d.ts.map +0 -1
- package/dist/build/types/skin/controls/volume-control.d.ts +0 -21
- package/dist/build/types/skin/controls/volume-control.d.ts.map +0 -1
- package/dist/build/types/skin/icons/icons-modern.d.ts +0 -10
- package/dist/build/types/skin/icons/icons-modern.d.ts.map +0 -1
- package/dist/build/types/skin/icons/icons.d.ts +0 -10
- package/dist/build/types/skin/icons/icons.d.ts.map +0 -1
- package/dist/build/types/skin/icons/sprite.d.ts +0 -39
- package/dist/build/types/skin/icons/sprite.d.ts.map +0 -1
- package/dist/build/types/skin/index.d.ts +0 -24
- package/dist/build/types/skin/index.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/error-message.d.ts +0 -14
- package/dist/build/types/skin/overlays/error-message.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/info-overlay.d.ts +0 -15
- package/dist/build/types/skin/overlays/info-overlay.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/loading-spinner.d.ts +0 -17
- package/dist/build/types/skin/overlays/loading-spinner.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/preroll-overlay.d.ts +0 -39
- package/dist/build/types/skin/overlays/preroll-overlay.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/socials-overlay.d.ts +0 -17
- package/dist/build/types/skin/overlays/socials-overlay.d.ts.map +0 -1
- package/dist/build/types/skin/overlays/toast-notification.d.ts +0 -18
- package/dist/build/types/skin/overlays/toast-notification.d.ts.map +0 -1
- package/dist/build/types/skin/skin-root.d.ts +0 -88
- package/dist/build/types/skin/skin-root.d.ts.map +0 -1
- package/dist/build/types/types.d.ts +0 -41
- package/dist/build/types/types.d.ts.map +0 -1
- package/dist/build/types/utils/chapters.d.ts +0 -16
- package/dist/build/types/utils/chapters.d.ts.map +0 -1
- package/dist/build/types/utils/format-duration.d.ts +0 -9
- package/dist/build/types/utils/format-duration.d.ts.map +0 -1
- package/dist/build/types/utils/format-wall-clock.d.ts +0 -6
- package/dist/build/types/utils/format-wall-clock.d.ts.map +0 -1
- package/dist/build/types/utils/settings-helpers.d.ts +0 -41
- package/dist/build/types/utils/settings-helpers.d.ts.map +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.EBPlayer = {}));
|
|
5
5
|
})(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
|
-
var __EB_PLAYER_VERSION__ = "2.
|
|
7
|
+
var __EB_PLAYER_VERSION__ = "2.3.0";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Finite State Machine for player playback state transitions.
|
|
@@ -1866,7 +1866,9 @@
|
|
|
1866
1866
|
}
|
|
1867
1867
|
if (mode === 'audio') {
|
|
1868
1868
|
const tracks = this.state.audioTracks;
|
|
1869
|
-
|
|
1869
|
+
// A single track offers no choice, so its raw descriptor (often a bare
|
|
1870
|
+
// 3-letter code like "ara") is noise — show the localized "Default".
|
|
1871
|
+
if (tracks.length <= 1)
|
|
1870
1872
|
return i18n.t('settings.default');
|
|
1871
1873
|
const current = this.state.currentAudioTrack;
|
|
1872
1874
|
const track = tracks[current];
|
|
@@ -1950,7 +1952,9 @@
|
|
|
1950
1952
|
renderAudioMenu() {
|
|
1951
1953
|
const tracks = this.state.audioTracks;
|
|
1952
1954
|
const currentTrack = this.state.currentAudioTrack;
|
|
1953
|
-
|
|
1955
|
+
// Single track (or none) collapses to one localized "Default" entry rather
|
|
1956
|
+
// than echoing a bare language code — matches currentValueLabel('audio').
|
|
1957
|
+
const items = tracks.length > 1
|
|
1954
1958
|
? getAudioItems(tracks, currentTrack)
|
|
1955
1959
|
: [{ label: this.i18n.t('settings.default'), value: 0, selected: true }];
|
|
1956
1960
|
return this.renderSubMenu(this.i18n.t('settings.audio'), items, (item) => {
|
|
@@ -4384,6 +4388,170 @@
|
|
|
4384
4388
|
};
|
|
4385
4389
|
}
|
|
4386
4390
|
|
|
4391
|
+
var subtitlesParserVtt = {exports: {}};
|
|
4392
|
+
|
|
4393
|
+
var hasRequiredSubtitlesParserVtt;
|
|
4394
|
+
|
|
4395
|
+
function requireSubtitlesParserVtt () {
|
|
4396
|
+
if (hasRequiredSubtitlesParserVtt) return subtitlesParserVtt.exports;
|
|
4397
|
+
hasRequiredSubtitlesParserVtt = 1;
|
|
4398
|
+
(function (module, exports) {
|
|
4399
|
+
var parser = (function () {
|
|
4400
|
+
var pItems = {};
|
|
4401
|
+
|
|
4402
|
+
/**
|
|
4403
|
+
* Converts SubRip subtitles into array of objects
|
|
4404
|
+
* [{
|
|
4405
|
+
* id: `Number of subtitle`
|
|
4406
|
+
* startTime: `Start time of subtitle`
|
|
4407
|
+
* endTime: `End time of subtitle
|
|
4408
|
+
* text: `Text of subtitle`
|
|
4409
|
+
* }]
|
|
4410
|
+
*
|
|
4411
|
+
* @param {String} data SubRip suntitles string
|
|
4412
|
+
* @param {Boolean} ms Optional: use milliseconds for startTime and endTime
|
|
4413
|
+
* @return {Array}
|
|
4414
|
+
*/
|
|
4415
|
+
pItems.fromVtt = function (data, timeFormat, isYoutubeAutoTranscript) {
|
|
4416
|
+
var useYoutubeAutoTranscript = isYoutubeAutoTranscript ? true : false;
|
|
4417
|
+
data = data.replace(/\r/g, "");
|
|
4418
|
+
var regex = /(\d+)?\n?(\d{2}:\d{2}:\d{2}[,.]\d{3}) --> (\d{2}:\d{2}:\d{2}[,.]\d{3}).*\n/g;
|
|
4419
|
+
data = data.split(regex);
|
|
4420
|
+
data.shift();
|
|
4421
|
+
var items = [];
|
|
4422
|
+
for (var i = 0; i < data.length; i += 4) {
|
|
4423
|
+
var text = data[i + 3];
|
|
4424
|
+
if (useYoutubeAutoTranscript) {
|
|
4425
|
+
text = text.split("\n");
|
|
4426
|
+
text.shift();
|
|
4427
|
+
text = text.join("\n");
|
|
4428
|
+
}
|
|
4429
|
+
if (text.trim().length === 0) continue;
|
|
4430
|
+
items.push({
|
|
4431
|
+
id: data[i] ? +data[i].trim() : items.length + 1,
|
|
4432
|
+
startTime: changeTimeFormat(data[i + 1].trim(), timeFormat),
|
|
4433
|
+
endTime: changeTimeFormat(data[i + 2].trim(), timeFormat),
|
|
4434
|
+
text: text.trim(),
|
|
4435
|
+
});
|
|
4436
|
+
}
|
|
4437
|
+
return items;
|
|
4438
|
+
};
|
|
4439
|
+
|
|
4440
|
+
/**
|
|
4441
|
+
* Converts Array of objects created by this module to SubRip subtitles
|
|
4442
|
+
* @param {Array} data
|
|
4443
|
+
* @return {String} SubRip subtitles string
|
|
4444
|
+
*/
|
|
4445
|
+
pItems.toVtt = function (data) {
|
|
4446
|
+
if (!data instanceof Array) return "";
|
|
4447
|
+
var res = "";
|
|
4448
|
+
|
|
4449
|
+
for (var i = 0; i < data.length; i++) {
|
|
4450
|
+
var s = data[i];
|
|
4451
|
+
|
|
4452
|
+
if (!isNaN(s.startTime) && !isNaN(s.endTime)) {
|
|
4453
|
+
s.startTime = msTime(parseInt(s.startTime, 10));
|
|
4454
|
+
s.endTime = msTime(parseInt(s.endTime, 10));
|
|
4455
|
+
}
|
|
4456
|
+
|
|
4457
|
+
res += s.id + "\r\n";
|
|
4458
|
+
res += s.startTime + " --> " + s.endTime + "\r\n";
|
|
4459
|
+
res += s.text.replace("\n", "\r\n") + "\r\n\r\n";
|
|
4460
|
+
}
|
|
4461
|
+
|
|
4462
|
+
return res;
|
|
4463
|
+
};
|
|
4464
|
+
|
|
4465
|
+
var changeTimeFormat = function (time, format) {
|
|
4466
|
+
if (format === "ms") {
|
|
4467
|
+
return timeMs(time);
|
|
4468
|
+
} else if (format === "s") {
|
|
4469
|
+
return timeMs(time) / 1000;
|
|
4470
|
+
} else {
|
|
4471
|
+
return time;
|
|
4472
|
+
}
|
|
4473
|
+
};
|
|
4474
|
+
|
|
4475
|
+
var timeMs = function (val) {
|
|
4476
|
+
var regex = /(\d+):(\d{2}):(\d{2})[,.](\d{3})/;
|
|
4477
|
+
var parts = regex.exec(val);
|
|
4478
|
+
|
|
4479
|
+
if (parts === null) {
|
|
4480
|
+
return 0;
|
|
4481
|
+
}
|
|
4482
|
+
|
|
4483
|
+
for (var i = 1; i < 5; i++) {
|
|
4484
|
+
parts[i] = parseInt(parts[i], 10);
|
|
4485
|
+
if (isNaN(parts[i])) parts[i] = 0;
|
|
4486
|
+
}
|
|
4487
|
+
|
|
4488
|
+
// hours + minutes + seconds + ms
|
|
4489
|
+
return parts[1] * 3600000 + parts[2] * 60000 + parts[3] * 1000 + parts[4];
|
|
4490
|
+
};
|
|
4491
|
+
|
|
4492
|
+
var msTime = function (val) {
|
|
4493
|
+
var measures = [3600000, 60000, 1000];
|
|
4494
|
+
var time = [];
|
|
4495
|
+
|
|
4496
|
+
for (var i in measures) {
|
|
4497
|
+
var res = ((val / measures[i]) >> 0).toString();
|
|
4498
|
+
|
|
4499
|
+
if (res.length < 2) res = "0" + res;
|
|
4500
|
+
val %= measures[i];
|
|
4501
|
+
time.push(res);
|
|
4502
|
+
}
|
|
4503
|
+
|
|
4504
|
+
var ms = val.toString();
|
|
4505
|
+
if (ms.length < 3) {
|
|
4506
|
+
for (i = 0; i <= 3 - ms.length; i++) ms = "0" + ms;
|
|
4507
|
+
}
|
|
4508
|
+
|
|
4509
|
+
return time.join(":") + "," + ms;
|
|
4510
|
+
};
|
|
4511
|
+
|
|
4512
|
+
return pItems;
|
|
4513
|
+
})();
|
|
4514
|
+
|
|
4515
|
+
// ignore exports for browser
|
|
4516
|
+
{
|
|
4517
|
+
module.exports = parser;
|
|
4518
|
+
}
|
|
4519
|
+
} (subtitlesParserVtt));
|
|
4520
|
+
return subtitlesParserVtt.exports;
|
|
4521
|
+
}
|
|
4522
|
+
|
|
4523
|
+
var subtitlesParserVttExports = requireSubtitlesParserVtt();
|
|
4524
|
+
|
|
4525
|
+
/**
|
|
4526
|
+
* Parses a WebVTT string into an array of ChapterMark objects.
|
|
4527
|
+
* Returns an empty array if the content is empty or contains no parseable cues.
|
|
4528
|
+
*/
|
|
4529
|
+
function parseChapters(vttContent) {
|
|
4530
|
+
if (!vttContent || !vttContent.trim()) {
|
|
4531
|
+
return [];
|
|
4532
|
+
}
|
|
4533
|
+
const cues = subtitlesParserVttExports.fromVtt(vttContent, 's');
|
|
4534
|
+
return cues.map((cue) => ({
|
|
4535
|
+
title: cue.text,
|
|
4536
|
+
startTime: cue.startTime,
|
|
4537
|
+
endTime: cue.endTime
|
|
4538
|
+
}));
|
|
4539
|
+
}
|
|
4540
|
+
/**
|
|
4541
|
+
* Fetches a WebVTT chapters file from a URL and parses it.
|
|
4542
|
+
* Returns an empty array if the fetch or parse fails.
|
|
4543
|
+
*/
|
|
4544
|
+
async function fetchChapters(url) {
|
|
4545
|
+
try {
|
|
4546
|
+
const response = await fetch(url);
|
|
4547
|
+
const text = await response.text();
|
|
4548
|
+
return parseChapters(text);
|
|
4549
|
+
}
|
|
4550
|
+
catch {
|
|
4551
|
+
return [];
|
|
4552
|
+
}
|
|
4553
|
+
}
|
|
4554
|
+
|
|
4387
4555
|
/**
|
|
4388
4556
|
* PlayerController manages the complete lifecycle of a player instance.
|
|
4389
4557
|
*
|
|
@@ -4584,6 +4752,25 @@
|
|
|
4584
4752
|
// CRITICAL: AbortController is one-shot. Create a fresh one for re-mount.
|
|
4585
4753
|
this.abortController = new AbortController();
|
|
4586
4754
|
}
|
|
4755
|
+
/**
|
|
4756
|
+
* Populate state.chapters from config.chapters.
|
|
4757
|
+
*
|
|
4758
|
+
* The value is either an inline WebVTT string or an http(s) URL pointing at a
|
|
4759
|
+
* .vtt file. A remote fetch is fire-and-forget and non-critical: fetchChapters
|
|
4760
|
+
* resolves to an empty array on failure, and a result arriving after dispose()
|
|
4761
|
+
* is discarded rather than written into a torn-down state.
|
|
4762
|
+
*/
|
|
4763
|
+
loadChapters(source, state, signal) {
|
|
4764
|
+
if (/^https?:\/\//i.test(source.trim())) {
|
|
4765
|
+
void fetchChapters(source).then((chapters) => {
|
|
4766
|
+
if (!signal.aborted) {
|
|
4767
|
+
state.chapters = chapters;
|
|
4768
|
+
}
|
|
4769
|
+
});
|
|
4770
|
+
return;
|
|
4771
|
+
}
|
|
4772
|
+
state.chapters = parseChapters(source);
|
|
4773
|
+
}
|
|
4587
4774
|
/**
|
|
4588
4775
|
* Initialize integration managers based on config flags.
|
|
4589
4776
|
* All integrations are async and non-critical — errors are caught and logged.
|
|
@@ -4626,6 +4813,10 @@
|
|
|
4626
4813
|
});
|
|
4627
4814
|
}
|
|
4628
4815
|
}
|
|
4816
|
+
// Chapters: skip when config.chapters is not set
|
|
4817
|
+
if (config.chapters) {
|
|
4818
|
+
this.loadChapters(config.chapters, state, signal);
|
|
4819
|
+
}
|
|
4629
4820
|
// IntroStreamManager: skip when config.preroll is false (D-02)
|
|
4630
4821
|
if (config.preroll && this.skinRoot !== null) {
|
|
4631
4822
|
const introManager = new IntroStreamManager();
|
|
@@ -8110,7 +8301,15 @@
|
|
|
8110
8301
|
if (typeof window !== 'undefined') {
|
|
8111
8302
|
console.info(`%cEBPlayer v${VERSION}`, 'color: #1FA9DD; font-weight: bold');
|
|
8112
8303
|
const win = window;
|
|
8113
|
-
|
|
8304
|
+
// Augment a pre-existing window.EBPlayer in place instead of replacing it.
|
|
8305
|
+
// Rollup's UMD wrapper calls factory(global.EBPlayer = {}), so in the UMD
|
|
8306
|
+
// build the global IS the exports object Rollup writes start/stop/destroy
|
|
8307
|
+
// onto — replacing it here orphaned that object, leaving a 6-key
|
|
8308
|
+
// window.EBPlayer beside a 3-key module surface (`import`/`require`).
|
|
8309
|
+
// `?? {}` keeps a hypothetical non-UMD build working.
|
|
8310
|
+
const api = win.EBPlayer ?? {};
|
|
8311
|
+
Object.assign(api, { start, stop, destroy, AVAILABLE_THEMES, THEME_LAYOUTS, version: VERSION });
|
|
8312
|
+
win.EBPlayer = api;
|
|
8114
8313
|
}
|
|
8115
8314
|
|
|
8116
8315
|
/**
|
|
@@ -8515,9 +8714,12 @@
|
|
|
8515
8714
|
createHlsAbrController: createHlsAbrController
|
|
8516
8715
|
});
|
|
8517
8716
|
|
|
8717
|
+
exports.AVAILABLE_THEMES = AVAILABLE_THEMES;
|
|
8718
|
+
exports.THEME_LAYOUTS = THEME_LAYOUTS;
|
|
8518
8719
|
exports.destroy = destroy;
|
|
8519
8720
|
exports.start = start;
|
|
8520
8721
|
exports.stop = stop;
|
|
8722
|
+
exports.version = VERSION;
|
|
8521
8723
|
|
|
8522
8724
|
}));
|
|
8523
8725
|
//# sourceMappingURL=ebplayer.bundle.js.map
|