@byteplus/veplayer-plugin 2.10.3-rc.1 → 2.11.0-rc.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.
Files changed (35) hide show
  1. package/esm/index.development.js +4675 -4739
  2. package/esm/index.production.js +7 -7
  3. package/esm/veplayer.plugin.abr.development.js +5020 -4805
  4. package/esm/veplayer.plugin.abr.production.js +1 -1
  5. package/esm/veplayer.plugin.drm.development.js +1 -1
  6. package/esm/veplayer.plugin.drm.production.js +1 -1
  7. package/esm/veplayer.plugin.flv.development.js +54 -74
  8. package/esm/veplayer.plugin.flv.production.js +1 -1
  9. package/esm/veplayer.plugin.hls.development.js +1 -1
  10. package/esm/veplayer.plugin.hls.production.js +1 -1
  11. package/esm/veplayer.plugin.hlsjs.development.js +218 -496
  12. package/esm/veplayer.plugin.hlsjs.production.js +1 -1
  13. package/esm/veplayer.plugin.rtm.development.js +1 -1
  14. package/esm/veplayer.plugin.rtm.production.js +1 -1
  15. package/esm/veplayer.plugin.time.shift.development.js +16 -13
  16. package/esm/veplayer.plugin.time.shift.production.js +1 -1
  17. package/esm/veplayer.plugin.xgvideo.development.js +1 -1
  18. package/esm/veplayer.plugin.xgvideo.production.js +1 -1
  19. package/esm/veplayer.strategy.base.development.js +1 -1
  20. package/esm/veplayer.strategy.base.production.js +1 -1
  21. package/esm/veplayer.strategy.rtm.adaptive.buffer.development.js +1 -1
  22. package/esm/veplayer.strategy.rtm.adaptive.buffer.production.js +1 -1
  23. package/package.json +2 -106
  24. package/umd/veplayer.plugin.abr.development.js +5019 -4804
  25. package/umd/veplayer.plugin.abr.production.js +1 -1
  26. package/umd/veplayer.plugin.flv.development.js +53 -73
  27. package/umd/veplayer.plugin.flv.production.js +1 -1
  28. package/umd/veplayer.plugin.hlsjs.development.js +217 -495
  29. package/umd/veplayer.plugin.hlsjs.production.js +1 -1
  30. package/esm/ad.d.ts +0 -3
  31. package/esm/hlsjs.d.ts +0 -3
  32. package/esm/time-shift.d.ts +0 -3
  33. package/umd/ad.d.ts +0 -3
  34. package/umd/hlsjs.d.ts +0 -3
  35. package/umd/time-shift.d.ts +0 -3
@@ -1,4 +1,3 @@
1
- import { DynamicModule } from "@byteplus/veplayer";
2
1
  function ownKeys$1(object, enumerableOnly) {
3
2
  var keys = Object.keys(object);
4
3
  if (Object.getOwnPropertySymbols) {
@@ -32174,7 +32173,7 @@ class Hls {
32174
32173
  }
32175
32174
  }
32176
32175
  Hls.defaultConfig = void 0;
32177
- const OPTIONS_MAP = {
32176
+ const optionsMap = {
32178
32177
  liveSyncDuration: {
32179
32178
  key: "targetLatency",
32180
32179
  val: 10
@@ -32191,40 +32190,20 @@ const OPTIONS_MAP = {
32191
32190
  key: "minSegmentsStartPlay",
32192
32191
  val: 3
32193
32192
  },
32194
- preferManagedMediaSource: [
32195
- {
32196
- key: "preferMMS",
32197
- val: false
32198
- },
32199
- {
32200
- key: "preferMMSStreaming",
32201
- val: false
32202
- }
32203
- ],
32193
+ preferManagedMediaSource: {
32194
+ key: "preferMMS",
32195
+ val: false
32196
+ },
32204
32197
  lowLatencyMode: {
32205
32198
  key: "useLowLatency",
32206
32199
  val: true
32207
- },
32208
- startPosition: {
32209
- key: "startTime",
32210
- val: 0
32211
- },
32212
- interstitialLiveLookAhead: {
32213
- key: "preloadTime",
32214
- val: 30
32215
32200
  }
32216
32201
  };
32217
- function getHlsConfig(config) {
32202
+ function getHlsConfig(config, playerConfig) {
32218
32203
  const hlsConfig = {};
32219
- Object.keys(OPTIONS_MAP).forEach((keyStr) => {
32220
- const tmp = OPTIONS_MAP[keyStr];
32221
- if (tmp instanceof Array) {
32222
- tmp.forEach((item) => {
32223
- hlsConfig[keyStr] = item.val;
32224
- });
32225
- } else {
32226
- hlsConfig[keyStr] = config[tmp.key] || tmp.val;
32227
- }
32204
+ Object.keys(optionsMap).forEach((keyStr) => {
32205
+ const tmp = optionsMap[keyStr];
32206
+ hlsConfig[keyStr] = config[tmp.key] || tmp.val;
32228
32207
  });
32229
32208
  const maxNumRetry = typeof config.retryCount === "number" ? config.retryCount : 3;
32230
32209
  const retryDelayMs = typeof config.retryDelay === "number" ? config.retryDelay : 1e3;
@@ -32275,434 +32254,11 @@ function getHlsConfig(config) {
32275
32254
  ...config
32276
32255
  };
32277
32256
  }
32278
- function initHlsEvents(hls, player) {
32279
- hls.on(Hls.Events.SUBTITLE_FRAG_PROCESSED, (_, { frag }) => {
32280
- player.emit("core_event", {
32281
- eventName: "core.subtitlesegments",
32282
- list: frag
32283
- });
32284
- });
32285
- hls.on(Hls.Events.MANIFEST_PARSED, (_, { levels }) => {
32286
- player.emit("core_event", {
32287
- eventName: "core.subtitleplaylist",
32288
- list: levels
32289
- });
32290
- });
32291
- hls.on(Hls.Events.MANIFEST_LOADING, (_, { url }) => {
32292
- player.emit("core_event", {
32293
- eventName: "core.loadstart",
32294
- url
32295
- });
32296
- });
32297
- hls.on(Hls.Events.LEVEL_LOADING, (_, { url }) => {
32298
- player.emit("core_event", {
32299
- eventName: "core.loadstart",
32300
- url
32301
- });
32302
- });
32303
- hls.on(Hls.Events.FRAG_LOADING, (_, { frag }) => {
32304
- player.emit("core_event", {
32305
- eventName: "core.loadstart",
32306
- url: frag.url
32307
- });
32308
- });
32309
- hls.on(Hls.Events.MANIFEST_LOADED, (_, data) => {
32310
- const { url } = data;
32311
- player.emit("core_event", {
32312
- eventName: "core.loadcomplete",
32313
- url
32314
- });
32315
- });
32316
- hls.on(Hls.Events.LEVEL_LOADED, (_, data) => {
32317
- const { details, stats } = data;
32318
- player.emit("core_event", {
32319
- eventName: "core.loadcomplete",
32320
- ...stats,
32321
- url: details == null ? void 0 : details.url
32322
- });
32323
- });
32324
- hls.on(Hls.Events.FRAG_LOADED, (_, data) => {
32325
- const { frag } = data;
32326
- player.emit("core_event", {
32327
- eventName: "core.loadcomplete",
32328
- url: frag.url
32329
- });
32330
- });
32331
- hls.on(Hls.Events.FRAG_PARSING_USERDATA, (_, { samples }) => {
32332
- player.emit("core_event", {
32333
- eventName: "core.sei",
32334
- sei: samples
32335
- });
32336
- });
32337
- hls.on(Hls.Events.MANIFEST_LOADED, (_, { levels, networkDetails }) => {
32338
- player.emit("core_event", {
32339
- eventName: "core.hlsmanifestloaded",
32340
- playlist: levels
32341
- });
32342
- player.emit("core_event", {
32343
- eventName: "core.loadresponseheaders",
32344
- headers: networkDetails.headers
32345
- });
32346
- });
32347
- hls.on(Hls.Events.LEVEL_LOADED, (_, { details }) => {
32348
- const dateRanges = {};
32349
- Object.keys(details.dateRanges).forEach((key) => {
32350
- dateRanges[key] = details.dateRanges[key].attr["START-DATE"];
32351
- });
32352
- player.emit("core_event", {
32353
- eventName: "core.hlslevelloaded",
32354
- playlist: {
32355
- ...details,
32356
- segments: details.fragments,
32357
- dateRanges
32358
- }
32359
- });
32360
- });
32361
- hls.on(Hls.Events.ERROR, (_, data) => {
32362
- const { details, fatal, type, response, reason, error } = data;
32363
- if (!fatal) {
32364
- return;
32365
- }
32366
- let errorCode;
32367
- let errorType;
32368
- switch (type) {
32369
- case Hls.ErrorTypes.NETWORK_ERROR:
32370
- errorCode = 2100;
32371
- if (details.includes("TimeOut")) {
32372
- errorCode = 2101;
32373
- } else if ((response == null ? void 0 : response.code) === 403) {
32374
- errorCode = 2103;
32375
- } else if ((response == null ? void 0 : response.code) === 404) {
32376
- errorCode = 2104;
32377
- }
32378
- player.emit("error", {
32379
- errorType: "network",
32380
- errorCode,
32381
- message: (error == null ? void 0 : error.message) || details,
32382
- originError: data
32383
- });
32384
- break;
32385
- case Hls.ErrorTypes.MEDIA_ERROR:
32386
- errorType = "media";
32387
- if (details === Hls.ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR) {
32388
- errorCode = 5104;
32389
- } else if (details === Hls.ErrorDetails.FRAG_DECRYPT_ERROR) {
32390
- errorCode = 5105;
32391
- } else if (details === Hls.ErrorDetails.FRAG_PARSING_ERROR) {
32392
- errorCode = 1100;
32393
- errorType = "manifest";
32394
- } else if (details === Hls.ErrorDetails.FRAG_GAP) {
32395
- errorCode = 5104;
32396
- } else if (details === Hls.ErrorDetails.BUFFER_ADD_CODEC_ERROR) {
32397
- errorCode = 5200;
32398
- } else if (details === Hls.ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR) {
32399
- errorCode = 5104;
32400
- } else if (details === Hls.ErrorDetails.BUFFER_APPEND_ERROR) {
32401
- errorCode = 5201;
32402
- } else if (details === Hls.ErrorDetails.BUFFER_APPENDING_ERROR) {
32403
- errorCode = 5201;
32404
- } else if (details === Hls.ErrorDetails.BUFFER_STALLED_ERROR) {
32405
- errorCode = 5203;
32406
- } else if (details === Hls.ErrorDetails.BUFFER_FULL_ERROR) {
32407
- errorCode = 5203;
32408
- } else if (details === Hls.ErrorDetails.BUFFER_SEEK_OVER_HOLE) {
32409
- errorCode = 5202;
32410
- } else if (details === Hls.ErrorDetails.BUFFER_NUDGE_ON_STALL) {
32411
- errorCode = 5202;
32412
- }
32413
- player.emit("error", {
32414
- errorType: errorType || type,
32415
- errorCode,
32416
- message: (error == null ? void 0 : error.message) || details,
32417
- originError: data
32418
- });
32419
- break;
32420
- case Hls.ErrorTypes.MUX_ERROR:
32421
- errorCode = 4100;
32422
- player.emit("error", {
32423
- errorType: "remux",
32424
- errorCode,
32425
- message: (error == null ? void 0 : error.message) || details,
32426
- originError: data
32427
- });
32428
- break;
32429
- case Hls.ErrorTypes.KEY_SYSTEM_ERROR:
32430
- errorCode = 7111;
32431
- if (details === Hls.ErrorDetails.KEY_SYSTEM_NO_KEYS) {
32432
- errorCode = 7103;
32433
- } else if (details === Hls.ErrorDetails.KEY_SYSTEM_NO_ACCESS) {
32434
- errorCode = 7101;
32435
- } else if (details === Hls.ErrorDetails.KEY_SYSTEM_NO_SESSION) {
32436
- errorCode = 7104;
32437
- } else if (details === Hls.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE) {
32438
- errorCode = 7107;
32439
- } else if (details === Hls.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED) {
32440
- errorCode = 7108;
32441
- } else if (details === Hls.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED) {
32442
- errorCode = 7110;
32443
- } else if (details === Hls.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED) {
32444
- errorCode = 7110;
32445
- } else if (details === Hls.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED) {
32446
- errorCode = 7104;
32447
- } else if (details === Hls.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR) {
32448
- errorCode = 7111;
32449
- }
32450
- player.emit("error", {
32451
- errorType: "drm",
32452
- errorCode,
32453
- message: (error == null ? void 0 : error.message) || reason || details,
32454
- originError: data
32455
- });
32456
- break;
32457
- default:
32458
- if (details === Hls.ErrorDetails.LEVEL_SWITCH_ERROR) {
32459
- errorCode = 2100;
32460
- errorType = "network";
32461
- }
32462
- player.emit("error", {
32463
- errorType: errorType || "other",
32464
- errorCode,
32465
- message: (error == null ? void 0 : error.message) || reason || details,
32466
- originError: data
32467
- });
32468
- break;
32469
- }
32470
- try {
32471
- hls.stopLoad();
32472
- player.pause();
32473
- } catch (error2) {
32474
- }
32475
- });
32476
- hls.on(Hls.Events.MEDIA_ATTACHED, () => {
32477
- player.emit("sourceopen");
32478
- });
32479
- hls.on(Hls.Events.BUFFER_APPENDED, () => {
32480
- player.emit("bufferappend");
32481
- });
32482
- hls.on(Hls.Events.AUDIO_TRACKS_UPDATED, (_, { audioTracks }) => {
32483
- player.emit("core_event", {
32484
- eventName: "core.audiotracksupdate",
32485
- audioTracks
32486
- });
32487
- });
32488
- hls.on(Hls.Events.AUDIO_TRACK_SWITCHING, (_, data) => {
32489
- player.emit("core_event", {
32490
- eventName: "core.audiotrackswitching",
32491
- ...data
32492
- });
32493
- });
32494
- hls.on(Hls.Events.AUDIO_TRACK_SWITCHED, (_, data) => {
32495
- player.emit("core_event", {
32496
- eventName: "core.audiotrackswitched",
32497
- ...data
32498
- });
32499
- });
32500
- hls.on(Hls.Events.SUBTITLE_TRACKS_UPDATED, (_, { subtitleTracks }) => {
32501
- player.emit("core_event", {
32502
- eventName: "core.subtitletracksupdate",
32503
- subtitleTracks
32504
- });
32505
- });
32506
- hls.on(Hls.Events.SUBTITLE_TRACKS_CLEARED, () => {
32507
- player.emit("core_event", {
32508
- eventName: "core.subtitletracksclear"
32509
- });
32510
- });
32511
- hls.on(Hls.Events.SUBTITLE_TRACK_SWITCH, (_, data) => {
32512
- player.emit("core_event", {
32513
- eventName: "core.subtitletrackswitch",
32514
- ...data
32515
- });
32516
- });
32517
- hls.on(Hls.Events.SUBTITLE_TRACK_LOADING, (_, data) => {
32518
- player.emit("core_event", {
32519
- eventName: "core.subtitletrackloading",
32520
- ...data
32521
- });
32522
- });
32523
- hls.on(Hls.Events.SUBTITLE_TRACK_LOADED, (_, data) => {
32524
- player.emit("core_event", {
32525
- eventName: "core.subtitletrackloaded",
32526
- ...data
32527
- });
32528
- });
32529
- }
32530
- class TrackManager {
32531
- constructor(hls, player) {
32532
- this.hls = hls;
32533
- this.player = player;
32534
- }
32535
- // Audio Track Methods
32536
- getAudioTracks() {
32537
- if (!this.hls) {
32538
- console.warn("HLS instance not initialized");
32539
- return [];
32540
- }
32541
- try {
32542
- return this.hls.audioTracks || [];
32543
- } catch (error) {
32544
- console.error("Failed to get audio tracks:", error);
32545
- return [];
32546
- }
32547
- }
32548
- getCurrentAudioTrack() {
32549
- if (!this.hls) {
32550
- console.warn("HLS instance not initialized");
32551
- return -1;
32552
- }
32553
- try {
32554
- return this.hls.audioTrack;
32555
- } catch (error) {
32556
- console.error("Failed to get current audio track:", error);
32557
- return -1;
32558
- }
32559
- }
32560
- switchAudioTrack(trackId) {
32561
- if (!this.hls) {
32562
- console.warn("HLS instance not initialized");
32563
- return false;
32564
- }
32565
- const audioTracks = this.getAudioTracks();
32566
- if (audioTracks.length === 0) {
32567
- console.warn("No audio tracks available");
32568
- return false;
32569
- }
32570
- const trackExists = audioTracks.some((_, index) => index === trackId);
32571
- if (!trackExists) {
32572
- console.warn(`Audio track with ID ${trackId} not found`);
32573
- return false;
32574
- }
32575
- try {
32576
- this.hls.audioTrack = trackId;
32577
- this.player.emit("core_event", {
32578
- eventName: "core.audiotrackchange",
32579
- trackId,
32580
- trackInfo: audioTracks[trackId] || null
32581
- });
32582
- return true;
32583
- } catch (error) {
32584
- console.error("Failed to switch audio track:", error);
32585
- return false;
32586
- }
32587
- }
32588
- // Subtitle Track Methods
32589
- getSubtitleTracks() {
32590
- if (!this.hls) {
32591
- console.warn("HLS instance not initialized");
32592
- return [];
32593
- }
32594
- try {
32595
- return this.hls.subtitleTracks || [];
32596
- } catch (error) {
32597
- console.error("Failed to get subtitle tracks:", error);
32598
- return [];
32599
- }
32600
- }
32601
- getAllSubtitleTracks() {
32602
- if (!this.hls) {
32603
- console.warn("HLS instance not initialized");
32604
- return [];
32605
- }
32606
- try {
32607
- return this.hls.allSubtitleTracks || [];
32608
- } catch (error) {
32609
- console.error("Failed to get all subtitle tracks:", error);
32610
- return [];
32611
- }
32612
- }
32613
- getCurrentSubtitleTrack() {
32614
- if (!this.hls) {
32615
- console.warn("HLS instance not initialized");
32616
- return -1;
32617
- }
32618
- try {
32619
- return this.hls.subtitleTrack;
32620
- } catch (error) {
32621
- console.error("Failed to get current subtitle track:", error);
32622
- return -1;
32623
- }
32624
- }
32625
- switchSubtitleTrack(trackId) {
32626
- if (!this.hls) {
32627
- console.warn("HLS instance not initialized");
32628
- return false;
32629
- }
32630
- const subtitleTracks = this.getSubtitleTracks();
32631
- if (trackId === -1) {
32632
- try {
32633
- this.hls.subtitleTrack = -1;
32634
- this.player.emit("core_event", {
32635
- eventName: "core.subtitletrackchange",
32636
- trackId: -1,
32637
- trackInfo: null
32638
- });
32639
- return true;
32640
- } catch (error) {
32641
- console.error("Failed to disable subtitle track:", error);
32642
- return false;
32643
- }
32644
- }
32645
- if (subtitleTracks.length === 0) {
32646
- console.warn("No subtitle tracks available");
32647
- return false;
32648
- }
32649
- const trackExists = subtitleTracks.some((_, index) => index === trackId);
32650
- if (!trackExists) {
32651
- console.warn(`Subtitle track with ID ${trackId} not found`);
32652
- return false;
32653
- }
32654
- try {
32655
- this.hls.subtitleTrack = trackId;
32656
- this.player.emit("core_event", {
32657
- eventName: "core.subtitletrackchange",
32658
- trackId,
32659
- trackInfo: subtitleTracks[trackId] || null
32660
- });
32661
- return true;
32662
- } catch (error) {
32663
- console.error("Failed to switch subtitle track:", error);
32664
- return false;
32665
- }
32666
- }
32667
- getSubtitleDisplay() {
32668
- if (!this.hls) {
32669
- console.warn("HLS instance not initialized");
32670
- return false;
32671
- }
32672
- try {
32673
- return this.hls.subtitleDisplay;
32674
- } catch (error) {
32675
- console.error("Failed to get subtitle display status:", error);
32676
- return false;
32677
- }
32678
- }
32679
- setSubtitleDisplay(enabled) {
32680
- if (!this.hls) {
32681
- console.warn("HLS instance not initialized");
32682
- return false;
32683
- }
32684
- try {
32685
- this.hls.subtitleDisplay = enabled;
32686
- this.player.emit("core_event", {
32687
- eventName: "core.subtitledisplaychange",
32688
- enabled
32689
- });
32690
- return true;
32691
- } catch (error) {
32692
- console.error("Failed to set subtitle display:", error);
32693
- return false;
32694
- }
32695
- }
32696
- }
32697
32257
  const MAX_HOLE = 0.1;
32698
32258
  class XgHls extends BasePlugin {
32699
32259
  constructor(options) {
32700
- super({
32701
- ...options,
32702
- pluginName: XgHls.pluginName
32703
- });
32260
+ super(options);
32704
32261
  this._tickInterval = 500;
32705
- this._currentIndex = 0;
32706
32262
  this._onPlay = () => {
32707
32263
  this.hls.startLoad();
32708
32264
  };
@@ -32740,7 +32296,8 @@ class XgHls extends BasePlugin {
32740
32296
  var _a;
32741
32297
  (_a = this.hls) == null ? void 0 : _a.on(eventName, func);
32742
32298
  };
32743
- this.config = options.config || {};
32299
+ const config = options.config || {};
32300
+ this.config = config;
32744
32301
  this.player.handleSource = false;
32745
32302
  }
32746
32303
  static get pluginName() {
@@ -32750,7 +32307,209 @@ class XgHls extends BasePlugin {
32750
32307
  this.register(this.player.config.url);
32751
32308
  }
32752
32309
  initEvt() {
32753
- initHlsEvents(this.hls, this.player);
32310
+ this.hls.on(Hls.Events.SUBTITLE_FRAG_PROCESSED, (_, { frag }) => {
32311
+ this.player.emit("core_event", {
32312
+ eventName: "core.subtitlesegments",
32313
+ list: frag
32314
+ });
32315
+ });
32316
+ this.hls.on(Hls.Events.MANIFEST_PARSED, (_, { levels }) => {
32317
+ this.player.emit("core_event", {
32318
+ eventName: "core.subtitleplaylist",
32319
+ list: levels
32320
+ });
32321
+ });
32322
+ this.hls.on(Hls.Events.MANIFEST_LOADING, (_, { url }) => {
32323
+ this.player.emit("core_event", {
32324
+ eventName: "core.loadstart",
32325
+ url
32326
+ });
32327
+ });
32328
+ this.hls.on(Hls.Events.LEVEL_LOADING, (_, { url }) => {
32329
+ this.player.emit("core_event", {
32330
+ eventName: "core.loadstart",
32331
+ url
32332
+ });
32333
+ });
32334
+ this.hls.on(Hls.Events.FRAG_LOADING, (_, { frag }) => {
32335
+ this.player.emit("core_event", {
32336
+ eventName: "core.loadstart",
32337
+ url: frag.url
32338
+ });
32339
+ });
32340
+ this.hls.on(Hls.Events.MANIFEST_LOADED, (_, data) => {
32341
+ const { url } = data;
32342
+ this.player.emit("core_event", {
32343
+ eventName: "core.loadcomplete",
32344
+ url
32345
+ });
32346
+ });
32347
+ this.hls.on(Hls.Events.LEVEL_LOADED, (_, data) => {
32348
+ const { details, stats } = data;
32349
+ this.player.emit("core_event", {
32350
+ eventName: "core.loadcomplete",
32351
+ ...stats,
32352
+ url: details == null ? void 0 : details.url
32353
+ });
32354
+ });
32355
+ this.hls.on(Hls.Events.FRAG_LOADED, (_, data) => {
32356
+ const { frag } = data;
32357
+ this.player.emit("core_event", {
32358
+ eventName: "core.loadcomplete",
32359
+ url: frag.url
32360
+ });
32361
+ });
32362
+ this.hls.on(Hls.Events.FRAG_PARSING_USERDATA, (_, { samples }) => {
32363
+ this.player.emit("core_event", {
32364
+ eventName: "core.sei",
32365
+ sei: samples
32366
+ });
32367
+ });
32368
+ this.hls.on(Hls.Events.MANIFEST_LOADED, (_, { levels, networkDetails }) => {
32369
+ this.player.emit("core_event", {
32370
+ eventName: "core.hlsmanifestloaded",
32371
+ playlist: levels
32372
+ });
32373
+ this.player.emit("core_event", {
32374
+ eventName: "core.loadresponseheaders",
32375
+ headers: networkDetails.headers
32376
+ });
32377
+ });
32378
+ this.hls.on(Hls.Events.LEVEL_LOADED, (_, { details }) => {
32379
+ const dateRanges = {};
32380
+ Object.keys(details.dateRanges).forEach((key) => {
32381
+ dateRanges[key] = details.dateRanges[key].attr["START-DATE"];
32382
+ });
32383
+ this.player.emit("core_event", {
32384
+ eventName: "core.hlslevelloaded",
32385
+ playlist: {
32386
+ ...details,
32387
+ segments: details.fragments,
32388
+ dateRanges
32389
+ }
32390
+ });
32391
+ });
32392
+ this.hls.on(Hls.Events.ERROR, (_, data) => {
32393
+ const { details, fatal, type, response, reason, error } = data;
32394
+ if (!fatal) {
32395
+ return;
32396
+ }
32397
+ let errorCode;
32398
+ let errorType;
32399
+ switch (type) {
32400
+ case Hls.ErrorTypes.NETWORK_ERROR:
32401
+ errorCode = 2100;
32402
+ if (details.includes("TimeOut")) {
32403
+ errorCode = 2101;
32404
+ } else if ((response == null ? void 0 : response.code) === 403) {
32405
+ errorCode = 2103;
32406
+ } else if ((response == null ? void 0 : response.code) === 404) {
32407
+ errorCode = 2104;
32408
+ }
32409
+ this.player.emit("error", {
32410
+ errorType: "network",
32411
+ errorCode,
32412
+ message: (error == null ? void 0 : error.message) || details,
32413
+ originError: data
32414
+ });
32415
+ break;
32416
+ case Hls.ErrorTypes.MEDIA_ERROR:
32417
+ errorType = "media";
32418
+ if (details === Hls.ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR) {
32419
+ errorCode = 5104;
32420
+ } else if (details === Hls.ErrorDetails.FRAG_DECRYPT_ERROR) {
32421
+ errorCode = 5105;
32422
+ } else if (details === Hls.ErrorDetails.FRAG_PARSING_ERROR) {
32423
+ errorCode = 1100;
32424
+ errorType = "manifest";
32425
+ } else if (details === Hls.ErrorDetails.FRAG_GAP) {
32426
+ errorCode = 5104;
32427
+ } else if (details === Hls.ErrorDetails.BUFFER_ADD_CODEC_ERROR) {
32428
+ errorCode = 5200;
32429
+ } else if (details === Hls.ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR) {
32430
+ errorCode = 5104;
32431
+ } else if (details === Hls.ErrorDetails.BUFFER_APPEND_ERROR) {
32432
+ errorCode = 5201;
32433
+ } else if (details === Hls.ErrorDetails.BUFFER_APPENDING_ERROR) {
32434
+ errorCode = 5201;
32435
+ } else if (details === Hls.ErrorDetails.BUFFER_STALLED_ERROR) {
32436
+ errorCode = 5203;
32437
+ } else if (details === Hls.ErrorDetails.BUFFER_FULL_ERROR) {
32438
+ errorCode = 5203;
32439
+ } else if (details === Hls.ErrorDetails.BUFFER_SEEK_OVER_HOLE) {
32440
+ errorCode = 5202;
32441
+ } else if (details === Hls.ErrorDetails.BUFFER_NUDGE_ON_STALL) {
32442
+ errorCode = 5202;
32443
+ }
32444
+ this.player.emit("error", {
32445
+ errorType: errorType || type,
32446
+ errorCode,
32447
+ message: (error == null ? void 0 : error.message) || details,
32448
+ originError: data
32449
+ });
32450
+ break;
32451
+ case Hls.ErrorTypes.MUX_ERROR:
32452
+ errorCode = 4100;
32453
+ this.player.emit("error", {
32454
+ errorType: "remux",
32455
+ errorCode,
32456
+ message: (error == null ? void 0 : error.message) || details,
32457
+ originError: data
32458
+ });
32459
+ break;
32460
+ case Hls.ErrorTypes.KEY_SYSTEM_ERROR:
32461
+ errorCode = 7111;
32462
+ if (details === Hls.ErrorDetails.KEY_SYSTEM_NO_KEYS) {
32463
+ errorCode = 7103;
32464
+ } else if (details === Hls.ErrorDetails.KEY_SYSTEM_NO_ACCESS) {
32465
+ errorCode = 7101;
32466
+ } else if (details === Hls.ErrorDetails.KEY_SYSTEM_NO_SESSION) {
32467
+ errorCode = 7104;
32468
+ } else if (details === Hls.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE) {
32469
+ errorCode = 7107;
32470
+ } else if (details === Hls.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED) {
32471
+ errorCode = 7108;
32472
+ } else if (details === Hls.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED) {
32473
+ errorCode = 7110;
32474
+ } else if (details === Hls.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED) {
32475
+ errorCode = 7110;
32476
+ } else if (details === Hls.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED) {
32477
+ errorCode = 7104;
32478
+ } else if (details === Hls.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR) {
32479
+ errorCode = 7111;
32480
+ }
32481
+ this.player.emit("error", {
32482
+ errorType: "drm",
32483
+ errorCode,
32484
+ message: (error == null ? void 0 : error.message) || reason || details,
32485
+ originError: data
32486
+ });
32487
+ break;
32488
+ default:
32489
+ if (details === Hls.ErrorDetails.LEVEL_SWITCH_ERROR) {
32490
+ errorCode = 2100;
32491
+ errorType = "network";
32492
+ }
32493
+ this.player.emit("error", {
32494
+ errorType: errorType || "other",
32495
+ errorCode,
32496
+ message: (error == null ? void 0 : error.message) || reason || details,
32497
+ originError: data
32498
+ });
32499
+ break;
32500
+ }
32501
+ try {
32502
+ this.hls.stopLoad();
32503
+ this.player.pause();
32504
+ } catch (error2) {
32505
+ }
32506
+ });
32507
+ this.hls.on(Hls.Events.MEDIA_ATTACHED, () => {
32508
+ this.player.emit("sourceopen");
32509
+ });
32510
+ this.hls.on(Hls.Events.BUFFER_APPENDED, () => {
32511
+ this.player.emit("bufferappend");
32512
+ });
32754
32513
  }
32755
32514
  afterCreate() {
32756
32515
  const media = this.player.media;
@@ -32776,9 +32535,8 @@ class XgHls extends BasePlugin {
32776
32535
  if (this.hls) {
32777
32536
  this.hls.destroy();
32778
32537
  }
32779
- const hlsConfig = getHlsConfig(this.config);
32538
+ const hlsConfig = getHlsConfig(this.config, player.config);
32780
32539
  this.hls = new Hls(hlsConfig);
32781
- this._trackManager = new TrackManager(this.hls, this.player);
32782
32540
  this.initEvt();
32783
32541
  if (player.config.preProcessUrl) {
32784
32542
  const { url: newUrl } = player.config.preProcessUrl(url);
@@ -32792,47 +32550,10 @@ class XgHls extends BasePlugin {
32792
32550
  media.removeEventListener("play", this._onPlay);
32793
32551
  media.addEventListener("play", this._onPlay);
32794
32552
  }
32795
- switchUrl(url, { startTime, bitrate, seamless }) {
32796
- this.hls.loadSource(url);
32797
- if (startTime !== void 0) {
32798
- const media = this.player.media;
32799
- media.currentTime = startTime;
32800
- }
32801
- }
32802
- // Audio Track Methods
32803
- getAudioTracks() {
32804
- return this._trackManager.getAudioTracks();
32805
- }
32806
- getCurrentAudioTrack() {
32807
- return this._trackManager.getCurrentAudioTrack();
32808
- }
32809
- switchAudioTrack(trackId) {
32810
- return this._trackManager.switchAudioTrack(trackId);
32811
- }
32812
- // Subtitle Track Methods
32813
- getSubtitleTracks() {
32814
- return this._trackManager.getSubtitleTracks();
32815
- }
32816
- getAllSubtitleTracks() {
32817
- return this._trackManager.getAllSubtitleTracks();
32818
- }
32819
- getCurrentSubtitleTrack() {
32820
- return this._trackManager.getCurrentSubtitleTrack();
32821
- }
32822
- switchSubtitleTrack(trackId) {
32823
- return this._trackManager.switchSubtitleTrack(trackId);
32824
- }
32825
- getSubtitleDisplay() {
32826
- return this._trackManager.getSubtitleDisplay();
32827
- }
32828
- setSubtitleDisplay(enabled) {
32829
- return this._trackManager.setSubtitleDisplay(enabled);
32830
- }
32831
32553
  destroy() {
32832
- var _a;
32833
32554
  clearTimeout(this._tickTimer);
32834
32555
  this.player.off(URL_CHANGE, this.onUrlChange);
32835
- (_a = this.hls) == null ? void 0 : _a.destroy();
32556
+ this.hls.destroy();
32836
32557
  }
32837
32558
  }
32838
32559
  class HlsPlugin extends XgHls {
@@ -32856,6 +32577,7 @@ class HlsPlugin extends XgHls {
32856
32577
  });
32857
32578
  }
32858
32579
  }
32580
+ const DynamicModule = window["VePlayer"].DynamicModule;
32859
32581
  const __PLUGIN_NAME__ = DynamicModule.PluginHlsJs;
32860
32582
  export {
32861
32583
  HlsPlugin,