wargerm 0.7.45 → 0.7.46

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.esm.js CHANGED
@@ -20,7 +20,7 @@ import zhCN$1 from 'antd/es/locale/zh_CN';
20
20
  import weekOfYear from 'dayjs/plugin/weekOfYear';
21
21
  import Player from 'xgplayer';
22
22
  import FlvPlayer from 'xgplayer-flv.js';
23
- import HlsJsPlayer from 'xgplayer-hls.js';
23
+ import Hls from 'hls.js';
24
24
  import ReactEChartsCore from 'echarts-for-react/lib/core';
25
25
  import * as echarts from 'echarts/core';
26
26
  import { use, registerTheme, graphic } from 'echarts/core';
@@ -278,6 +278,36 @@ function _createSuper(Derived) {
278
278
  };
279
279
  }
280
280
 
281
+ function _superPropBase(object, property) {
282
+ while (!Object.prototype.hasOwnProperty.call(object, property)) {
283
+ object = _getPrototypeOf(object);
284
+ if (object === null) break;
285
+ }
286
+
287
+ return object;
288
+ }
289
+
290
+ function _get() {
291
+ if (typeof Reflect !== "undefined" && Reflect.get) {
292
+ _get = Reflect.get;
293
+ } else {
294
+ _get = function _get(target, property, receiver) {
295
+ var base = _superPropBase(target, property);
296
+
297
+ if (!base) return;
298
+ var desc = Object.getOwnPropertyDescriptor(base, property);
299
+
300
+ if (desc.get) {
301
+ return desc.get.call(arguments.length < 3 ? target : receiver);
302
+ }
303
+
304
+ return desc.value;
305
+ };
306
+ }
307
+
308
+ return _get.apply(this, arguments);
309
+ }
310
+
281
311
  function _slicedToArray(arr, i) {
282
312
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
283
313
  }
@@ -8484,6 +8514,327 @@ var WebsocketHeart = /*#__PURE__*/_createClass(function WebsocketHeart(_ref) {
8484
8514
  this.heartCheck = null;
8485
8515
  });
8486
8516
 
8517
+ var util = {};
8518
+
8519
+ util.getBrowserVersion = function () {
8520
+ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
8521
+
8522
+ if (userAgent.toLowerCase().indexOf("mobile") > -1) {
8523
+ return "Unknown";
8524
+ }
8525
+
8526
+ if (userAgent.indexOf("Firefox") > -1) {
8527
+ var version = userAgent.match(/firefox\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8528
+ return "Firefox " + version;
8529
+ } else if (userAgent.indexOf("Edge") > -1) {
8530
+ var _version = userAgent.match(/edge\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8531
+ return "Edge " + _version;
8532
+ } else if (userAgent.indexOf("rv:11") > -1) {
8533
+ return "IE 11";
8534
+ } else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
8535
+ if (userAgent.indexOf("Opera") > -1) {
8536
+ var _version2 = userAgent.match(/opera\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8537
+ return "Opera " + _version2;
8538
+ }
8539
+
8540
+ if (userAgent.indexOf("OPR") > -1) {
8541
+ var _version3 = userAgent.match(/opr\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8542
+ return "Opera " + _version3;
8543
+ }
8544
+ } else if (userAgent.indexOf("Chrome") > -1) {
8545
+ var _version4 = userAgent.match(/chrome\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8546
+ return "Chrome " + _version4;
8547
+ } else if (userAgent.indexOf("Safari") > -1) {
8548
+ var _version5 = userAgent.match(/safari\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8549
+ return "Safari " + _version5;
8550
+ } else if (userAgent.indexOf("MSIE") > -1 || userAgent.indexOf("Trident") > -1) {
8551
+ if (userAgent.indexOf("MSIE") > -1) {
8552
+ var _version6 = userAgent.match(/msie [\d.]+/gi)[0].match(/[\d]+/)[0];
8553
+ return "IE " + _version6;
8554
+ }
8555
+
8556
+ if (userAgent.indexOf("Trident") > -1) {
8557
+ var versionTrident = userAgent.match(/trident\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8558
+
8559
+ var _version7 = parseInt(versionTrident) + 4;
8560
+
8561
+ return "IE " + _version7;
8562
+ }
8563
+ } else {
8564
+ return "Unknown";
8565
+ }
8566
+ };
8567
+
8568
+ var HlsJsPlayer = /*#__PURE__*/function (_Player) {
8569
+ _inherits(HlsJsPlayer, _Player);
8570
+
8571
+ var _super = _createSuper(HlsJsPlayer);
8572
+
8573
+ function HlsJsPlayer(options) {
8574
+ var _this;
8575
+
8576
+ _classCallCheck(this, HlsJsPlayer);
8577
+
8578
+ _this = _super.call(this, options);
8579
+ _this.hlsOpts = options.hlsOpts || {};
8580
+ _this.hlsOpts.mediaType = _this.config.mediaType;
8581
+ var util$1 = Player.util;
8582
+
8583
+ var player = _assertThisInitialized(_this);
8584
+
8585
+ player.once('complete', function () {
8586
+ if (player.config.isLive) {
8587
+ util$1.addClass(player.root, 'xgplayer-is-live');
8588
+
8589
+ if (!util$1.findDom(player.controls, '.xgplayer-live')) {
8590
+ var live = util$1.createDom('xg-live', player.lang.LIVE || '正在直播', {}, 'xgplayer-live');
8591
+ player.controls.appendChild(live);
8592
+ }
8593
+ }
8594
+ });
8595
+ _this.browser = util.getBrowserVersion();
8596
+
8597
+ if (player.config.useHls === undefined) {
8598
+ if (Player.sniffer.device === 'mobile' && navigator.platform !== 'MacIntel' && navigator.platform !== 'Win32' || _this.browser.indexOf('Safari') > -1) {
8599
+ return _possibleConstructorReturn(_this);
8600
+ }
8601
+ } else if (!player.config.useHls) {
8602
+ return _possibleConstructorReturn(_this);
8603
+ }
8604
+
8605
+ _this._start = _this.start;
8606
+
8607
+ _this.start = function () {
8608
+ if (!window.XgVideoProxy) {
8609
+ _this.root.insertBefore(_this.video, _this.root.firstChild);
8610
+ }
8611
+
8612
+ setTimeout(function () {
8613
+ _this.emit('complete');
8614
+
8615
+ if (_this.danmu && typeof _this.danmu.resize === 'function') {
8616
+ _this.danmu.resize();
8617
+ }
8618
+ }, 1);
8619
+ };
8620
+
8621
+ Number.isFinite = Number.isFinite || function (value) {
8622
+ return typeof value === "number" && isFinite(value);
8623
+ };
8624
+
8625
+ var hls;
8626
+ hls = new Hls(_this.hlsOpts);
8627
+ _this.hls = hls;
8628
+ Object.defineProperty(player, 'src', {
8629
+ get: function get() {
8630
+ return player.currentSrc;
8631
+ },
8632
+ set: function set(url) {
8633
+ util$1.removeClass(player.root, 'xgplayer-is-live');
8634
+ var liveDom = document.querySelector('.xgplayer-live');
8635
+
8636
+ if (liveDom) {
8637
+ liveDom.parentNode.removeChild(liveDom);
8638
+ } // player.config.url = url
8639
+
8640
+
8641
+ player.autoplay = true;
8642
+ var paused = player.paused;
8643
+
8644
+ if (!paused) {
8645
+ player.pause();
8646
+ }
8647
+
8648
+ player.hls.stopLoad();
8649
+ player.hls.detachMedia();
8650
+ player.hls.destroy();
8651
+ player.hls = new Hls(player.hlsOpts);
8652
+ player.register(url);
8653
+ player.once('canplay', function () {
8654
+ player.play().catch(function (err) {});
8655
+ });
8656
+ player.hls.loadSource(url);
8657
+ player.hls.attachMedia(player.video);
8658
+ },
8659
+ configurable: true
8660
+ });
8661
+
8662
+ _this.register(_this.config.url);
8663
+
8664
+ _this.once('complete', function () {
8665
+ hls.attachMedia(player.video);
8666
+
8667
+ if (!player.config.videoInit) {
8668
+ player.once('canplay', function () {
8669
+ player.play().catch(function (err) {});
8670
+ });
8671
+ }
8672
+ });
8673
+
8674
+ _this.once('destroy', function () {
8675
+ hls.stopLoad();
8676
+ });
8677
+
8678
+ return _this;
8679
+ }
8680
+
8681
+ _createClass(HlsJsPlayer, [{
8682
+ key: "switchURL",
8683
+ value: function switchURL(url) {
8684
+ var player = this;
8685
+ player.url = url;
8686
+ player.config.url = url;
8687
+ var curTime = player.currentTime; // player.video.muted = true
8688
+
8689
+ Player.util.addClass(player.root, 'xgplayer-is-enter');
8690
+ player.once('playing', function () {
8691
+ Player.util.removeClass(player.root, 'xgplayer-is-enter'); // player.video.muted = false
8692
+ });
8693
+ player.once('canplay', function () {
8694
+ player.currentTime = curTime;
8695
+ player.play();
8696
+ });
8697
+
8698
+ if (_typeof(player.hls) === 'object') {
8699
+ player.hls.originUrl = url;
8700
+ }
8701
+
8702
+ player.src = url;
8703
+ }
8704
+ }, {
8705
+ key: "register",
8706
+ value: function register(url) {
8707
+ var hls = this.hls;
8708
+ var util = Player.util;
8709
+ var player = this;
8710
+ hls.on(Hls.Events.MEDIA_ATTACHED, function () {
8711
+ hls.loadSource(url);
8712
+ });
8713
+ hls.on(Hls.Events.LEVEL_LOADED, function (name, e) {
8714
+ if (!hls.inited) {
8715
+ hls.inited = true;
8716
+
8717
+ if (e && e.details && e.details.live) {
8718
+ util.addClass(player.root, 'xgplayer-is-live');
8719
+
8720
+ if (!util.findDom(player.root, '.xgplayer-live')) {
8721
+ var live = util.createDom('xg-live', player.lang.LIVE || '正在直播', {}, 'xgplayer-live');
8722
+ player.controls.appendChild(live);
8723
+ }
8724
+ }
8725
+ }
8726
+ });
8727
+ hls.on(Hls.Events.ERROR, function (event, data) {
8728
+ player.emit('HLS_ERROR', {
8729
+ errorType: data.type,
8730
+ errorDetails: data.details,
8731
+ errorFatal: data.fatal
8732
+ });
8733
+
8734
+ if (data.fatal) {
8735
+ switch (data.type) {
8736
+ case Hls.ErrorTypes.NETWORK_ERROR:
8737
+ hls.startLoad();
8738
+ break;
8739
+
8740
+ case Hls.ErrorTypes.MEDIA_ERROR:
8741
+ hls.recoverMediaError();
8742
+ break;
8743
+
8744
+ default:
8745
+ player.emit('error', data);
8746
+ }
8747
+ }
8748
+ });
8749
+
8750
+ this._statistics();
8751
+ }
8752
+ }, {
8753
+ key: "updateURLOnly",
8754
+ value: function updateURLOnly(url) {
8755
+ var player = this;
8756
+ var levelController = player.hls.levelController;
8757
+
8758
+ if (Array.isArray(levelController._levels) && levelController._levels.length > 0) {
8759
+ levelController._levels[0].url = [url];
8760
+ }
8761
+
8762
+ player.config.url = url;
8763
+ player.url = url;
8764
+ player.hls.originUrl = url;
8765
+ }
8766
+ }, {
8767
+ key: "_statistics",
8768
+ value: function _statistics() {
8769
+ var statsInfo = {
8770
+ speed: 0,
8771
+ playerType: "HlsPlayer"
8772
+ };
8773
+ var mediainfo = {
8774
+ videoDataRate: 0,
8775
+ audioDataRate: 0
8776
+ };
8777
+ var hls = this.hls;
8778
+ var player = this;
8779
+ hls.on(Hls.Events.FRAG_LOAD_PROGRESS, function (flag, payload) {
8780
+ statsInfo.speed = payload.stats.loaded / 1000;
8781
+ });
8782
+ hls.on(Hls.Events.FRAG_PARSING_DATA, function (flag, payload) {
8783
+ if (payload.type === 'video') {
8784
+ mediainfo.fps = parseInt(payload.nb / (payload.endPTS - payload.startPTS));
8785
+ }
8786
+ });
8787
+ hls.on(Hls.Events.FRAG_PARSING_INIT_SEGMENT, function (flag, payload) {
8788
+ mediainfo.hasAudio = payload && payload.tracks && payload.tracks.audio ? true : false;
8789
+ mediainfo.hasVideo = payload && payload.tracks && payload.tracks.video ? true : false;
8790
+
8791
+ if (mediainfo.hasAudio && payload.tracks.audio) {
8792
+ var track = payload.tracks.audio;
8793
+ mediainfo.audioChannelCount = track.metadata && track.metadata.channelCount ? track.metadata.channelCount : 0;
8794
+ mediainfo.audioCodec = track.codec;
8795
+ }
8796
+
8797
+ if (mediainfo.hasVideo && payload.tracks.video) {
8798
+ var _track = payload.tracks.video;
8799
+ mediainfo.videoCodec = _track.codec;
8800
+ mediainfo.width = _track.metadata && _track.metadata.width ? _track.metadata.width : 0;
8801
+ mediainfo.height = _track.metadata && _track.metadata.height ? _track.metadata.height : 0;
8802
+ }
8803
+
8804
+ mediainfo.duration = payload.frag && payload.frag.duration ? payload.frag.duration : 0;
8805
+ mediainfo.level = payload.frag && payload.frag.level ? payload.frag.level : 0;
8806
+
8807
+ if (mediainfo.videoCodec || mediainfo.audioCodec) {
8808
+ mediainfo.mimeType = "video/hls; codecs=\"".concat(mediainfo.videoCodec, ";").concat(mediainfo.audioCodec, "\"");
8809
+ }
8810
+
8811
+ player.mediainfo = mediainfo;
8812
+ player.emit("media_info", mediainfo);
8813
+ });
8814
+ this._statisticsTimmer = setInterval(function () {
8815
+ player.emit("statistics_info", statsInfo);
8816
+ statsInfo.speed = 0;
8817
+ }, 1000);
8818
+ }
8819
+ }, {
8820
+ key: "destroy",
8821
+ value: function destroy() {
8822
+ clearInterval(this._statisticsTimmer);
8823
+
8824
+ if (this.hls) {
8825
+ this.hls.destroy();
8826
+ }
8827
+
8828
+ _get(_getPrototypeOf(HlsJsPlayer.prototype), "destroy", this).call(this);
8829
+ }
8830
+ }]);
8831
+
8832
+ return HlsJsPlayer;
8833
+ }(Player);
8834
+
8835
+ HlsJsPlayer.isSupported = Hls.isSupported;
8836
+ HlsJsPlayer.HlsJs = Hls;
8837
+
8487
8838
  function Xgplay(_ref, fRef) {
8488
8839
  var config = _ref.config,
8489
8840
  type = _ref.type,
package/dist/index.js CHANGED
@@ -24,7 +24,7 @@ var zhCN$1 = require('antd/es/locale/zh_CN');
24
24
  var weekOfYear = require('dayjs/plugin/weekOfYear');
25
25
  var Player = require('xgplayer');
26
26
  var FlvPlayer = require('xgplayer-flv.js');
27
- var HlsJsPlayer = require('xgplayer-hls.js');
27
+ var Hls = require('hls.js');
28
28
  var ReactEChartsCore = require('echarts-for-react/lib/core');
29
29
  var echarts = require('echarts/core');
30
30
  var charts = require('echarts/charts');
@@ -68,7 +68,7 @@ var zhCN__default$1 = /*#__PURE__*/_interopDefaultLegacy(zhCN$1);
68
68
  var weekOfYear__default = /*#__PURE__*/_interopDefaultLegacy(weekOfYear);
69
69
  var Player__default = /*#__PURE__*/_interopDefaultLegacy(Player);
70
70
  var FlvPlayer__default = /*#__PURE__*/_interopDefaultLegacy(FlvPlayer);
71
- var HlsJsPlayer__default = /*#__PURE__*/_interopDefaultLegacy(HlsJsPlayer);
71
+ var Hls__default = /*#__PURE__*/_interopDefaultLegacy(Hls);
72
72
  var ReactEChartsCore__default = /*#__PURE__*/_interopDefaultLegacy(ReactEChartsCore);
73
73
  var echarts__namespace = /*#__PURE__*/_interopNamespace(echarts);
74
74
 
@@ -322,6 +322,36 @@ function _createSuper(Derived) {
322
322
  };
323
323
  }
324
324
 
325
+ function _superPropBase(object, property) {
326
+ while (!Object.prototype.hasOwnProperty.call(object, property)) {
327
+ object = _getPrototypeOf(object);
328
+ if (object === null) break;
329
+ }
330
+
331
+ return object;
332
+ }
333
+
334
+ function _get() {
335
+ if (typeof Reflect !== "undefined" && Reflect.get) {
336
+ _get = Reflect.get;
337
+ } else {
338
+ _get = function _get(target, property, receiver) {
339
+ var base = _superPropBase(target, property);
340
+
341
+ if (!base) return;
342
+ var desc = Object.getOwnPropertyDescriptor(base, property);
343
+
344
+ if (desc.get) {
345
+ return desc.get.call(arguments.length < 3 ? target : receiver);
346
+ }
347
+
348
+ return desc.value;
349
+ };
350
+ }
351
+
352
+ return _get.apply(this, arguments);
353
+ }
354
+
325
355
  function _slicedToArray(arr, i) {
326
356
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
327
357
  }
@@ -8528,6 +8558,327 @@ var WebsocketHeart = /*#__PURE__*/_createClass(function WebsocketHeart(_ref) {
8528
8558
  this.heartCheck = null;
8529
8559
  });
8530
8560
 
8561
+ var util = {};
8562
+
8563
+ util.getBrowserVersion = function () {
8564
+ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
8565
+
8566
+ if (userAgent.toLowerCase().indexOf("mobile") > -1) {
8567
+ return "Unknown";
8568
+ }
8569
+
8570
+ if (userAgent.indexOf("Firefox") > -1) {
8571
+ var version = userAgent.match(/firefox\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8572
+ return "Firefox " + version;
8573
+ } else if (userAgent.indexOf("Edge") > -1) {
8574
+ var _version = userAgent.match(/edge\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8575
+ return "Edge " + _version;
8576
+ } else if (userAgent.indexOf("rv:11") > -1) {
8577
+ return "IE 11";
8578
+ } else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
8579
+ if (userAgent.indexOf("Opera") > -1) {
8580
+ var _version2 = userAgent.match(/opera\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8581
+ return "Opera " + _version2;
8582
+ }
8583
+
8584
+ if (userAgent.indexOf("OPR") > -1) {
8585
+ var _version3 = userAgent.match(/opr\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8586
+ return "Opera " + _version3;
8587
+ }
8588
+ } else if (userAgent.indexOf("Chrome") > -1) {
8589
+ var _version4 = userAgent.match(/chrome\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8590
+ return "Chrome " + _version4;
8591
+ } else if (userAgent.indexOf("Safari") > -1) {
8592
+ var _version5 = userAgent.match(/safari\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8593
+ return "Safari " + _version5;
8594
+ } else if (userAgent.indexOf("MSIE") > -1 || userAgent.indexOf("Trident") > -1) {
8595
+ if (userAgent.indexOf("MSIE") > -1) {
8596
+ var _version6 = userAgent.match(/msie [\d.]+/gi)[0].match(/[\d]+/)[0];
8597
+ return "IE " + _version6;
8598
+ }
8599
+
8600
+ if (userAgent.indexOf("Trident") > -1) {
8601
+ var versionTrident = userAgent.match(/trident\/[\d.]+/gi)[0].match(/[\d]+/)[0];
8602
+
8603
+ var _version7 = parseInt(versionTrident) + 4;
8604
+
8605
+ return "IE " + _version7;
8606
+ }
8607
+ } else {
8608
+ return "Unknown";
8609
+ }
8610
+ };
8611
+
8612
+ var HlsJsPlayer = /*#__PURE__*/function (_Player) {
8613
+ _inherits(HlsJsPlayer, _Player);
8614
+
8615
+ var _super = _createSuper(HlsJsPlayer);
8616
+
8617
+ function HlsJsPlayer(options) {
8618
+ var _this;
8619
+
8620
+ _classCallCheck(this, HlsJsPlayer);
8621
+
8622
+ _this = _super.call(this, options);
8623
+ _this.hlsOpts = options.hlsOpts || {};
8624
+ _this.hlsOpts.mediaType = _this.config.mediaType;
8625
+ var util$1 = Player__default['default'].util;
8626
+
8627
+ var player = _assertThisInitialized(_this);
8628
+
8629
+ player.once('complete', function () {
8630
+ if (player.config.isLive) {
8631
+ util$1.addClass(player.root, 'xgplayer-is-live');
8632
+
8633
+ if (!util$1.findDom(player.controls, '.xgplayer-live')) {
8634
+ var live = util$1.createDom('xg-live', player.lang.LIVE || '正在直播', {}, 'xgplayer-live');
8635
+ player.controls.appendChild(live);
8636
+ }
8637
+ }
8638
+ });
8639
+ _this.browser = util.getBrowserVersion();
8640
+
8641
+ if (player.config.useHls === undefined) {
8642
+ if (Player__default['default'].sniffer.device === 'mobile' && navigator.platform !== 'MacIntel' && navigator.platform !== 'Win32' || _this.browser.indexOf('Safari') > -1) {
8643
+ return _possibleConstructorReturn(_this);
8644
+ }
8645
+ } else if (!player.config.useHls) {
8646
+ return _possibleConstructorReturn(_this);
8647
+ }
8648
+
8649
+ _this._start = _this.start;
8650
+
8651
+ _this.start = function () {
8652
+ if (!window.XgVideoProxy) {
8653
+ _this.root.insertBefore(_this.video, _this.root.firstChild);
8654
+ }
8655
+
8656
+ setTimeout(function () {
8657
+ _this.emit('complete');
8658
+
8659
+ if (_this.danmu && typeof _this.danmu.resize === 'function') {
8660
+ _this.danmu.resize();
8661
+ }
8662
+ }, 1);
8663
+ };
8664
+
8665
+ Number.isFinite = Number.isFinite || function (value) {
8666
+ return typeof value === "number" && isFinite(value);
8667
+ };
8668
+
8669
+ var hls;
8670
+ hls = new Hls__default['default'](_this.hlsOpts);
8671
+ _this.hls = hls;
8672
+ Object.defineProperty(player, 'src', {
8673
+ get: function get() {
8674
+ return player.currentSrc;
8675
+ },
8676
+ set: function set(url) {
8677
+ util$1.removeClass(player.root, 'xgplayer-is-live');
8678
+ var liveDom = document.querySelector('.xgplayer-live');
8679
+
8680
+ if (liveDom) {
8681
+ liveDom.parentNode.removeChild(liveDom);
8682
+ } // player.config.url = url
8683
+
8684
+
8685
+ player.autoplay = true;
8686
+ var paused = player.paused;
8687
+
8688
+ if (!paused) {
8689
+ player.pause();
8690
+ }
8691
+
8692
+ player.hls.stopLoad();
8693
+ player.hls.detachMedia();
8694
+ player.hls.destroy();
8695
+ player.hls = new Hls__default['default'](player.hlsOpts);
8696
+ player.register(url);
8697
+ player.once('canplay', function () {
8698
+ player.play().catch(function (err) {});
8699
+ });
8700
+ player.hls.loadSource(url);
8701
+ player.hls.attachMedia(player.video);
8702
+ },
8703
+ configurable: true
8704
+ });
8705
+
8706
+ _this.register(_this.config.url);
8707
+
8708
+ _this.once('complete', function () {
8709
+ hls.attachMedia(player.video);
8710
+
8711
+ if (!player.config.videoInit) {
8712
+ player.once('canplay', function () {
8713
+ player.play().catch(function (err) {});
8714
+ });
8715
+ }
8716
+ });
8717
+
8718
+ _this.once('destroy', function () {
8719
+ hls.stopLoad();
8720
+ });
8721
+
8722
+ return _this;
8723
+ }
8724
+
8725
+ _createClass(HlsJsPlayer, [{
8726
+ key: "switchURL",
8727
+ value: function switchURL(url) {
8728
+ var player = this;
8729
+ player.url = url;
8730
+ player.config.url = url;
8731
+ var curTime = player.currentTime; // player.video.muted = true
8732
+
8733
+ Player__default['default'].util.addClass(player.root, 'xgplayer-is-enter');
8734
+ player.once('playing', function () {
8735
+ Player__default['default'].util.removeClass(player.root, 'xgplayer-is-enter'); // player.video.muted = false
8736
+ });
8737
+ player.once('canplay', function () {
8738
+ player.currentTime = curTime;
8739
+ player.play();
8740
+ });
8741
+
8742
+ if (_typeof(player.hls) === 'object') {
8743
+ player.hls.originUrl = url;
8744
+ }
8745
+
8746
+ player.src = url;
8747
+ }
8748
+ }, {
8749
+ key: "register",
8750
+ value: function register(url) {
8751
+ var hls = this.hls;
8752
+ var util = Player__default['default'].util;
8753
+ var player = this;
8754
+ hls.on(Hls__default['default'].Events.MEDIA_ATTACHED, function () {
8755
+ hls.loadSource(url);
8756
+ });
8757
+ hls.on(Hls__default['default'].Events.LEVEL_LOADED, function (name, e) {
8758
+ if (!hls.inited) {
8759
+ hls.inited = true;
8760
+
8761
+ if (e && e.details && e.details.live) {
8762
+ util.addClass(player.root, 'xgplayer-is-live');
8763
+
8764
+ if (!util.findDom(player.root, '.xgplayer-live')) {
8765
+ var live = util.createDom('xg-live', player.lang.LIVE || '正在直播', {}, 'xgplayer-live');
8766
+ player.controls.appendChild(live);
8767
+ }
8768
+ }
8769
+ }
8770
+ });
8771
+ hls.on(Hls__default['default'].Events.ERROR, function (event, data) {
8772
+ player.emit('HLS_ERROR', {
8773
+ errorType: data.type,
8774
+ errorDetails: data.details,
8775
+ errorFatal: data.fatal
8776
+ });
8777
+
8778
+ if (data.fatal) {
8779
+ switch (data.type) {
8780
+ case Hls__default['default'].ErrorTypes.NETWORK_ERROR:
8781
+ hls.startLoad();
8782
+ break;
8783
+
8784
+ case Hls__default['default'].ErrorTypes.MEDIA_ERROR:
8785
+ hls.recoverMediaError();
8786
+ break;
8787
+
8788
+ default:
8789
+ player.emit('error', data);
8790
+ }
8791
+ }
8792
+ });
8793
+
8794
+ this._statistics();
8795
+ }
8796
+ }, {
8797
+ key: "updateURLOnly",
8798
+ value: function updateURLOnly(url) {
8799
+ var player = this;
8800
+ var levelController = player.hls.levelController;
8801
+
8802
+ if (Array.isArray(levelController._levels) && levelController._levels.length > 0) {
8803
+ levelController._levels[0].url = [url];
8804
+ }
8805
+
8806
+ player.config.url = url;
8807
+ player.url = url;
8808
+ player.hls.originUrl = url;
8809
+ }
8810
+ }, {
8811
+ key: "_statistics",
8812
+ value: function _statistics() {
8813
+ var statsInfo = {
8814
+ speed: 0,
8815
+ playerType: "HlsPlayer"
8816
+ };
8817
+ var mediainfo = {
8818
+ videoDataRate: 0,
8819
+ audioDataRate: 0
8820
+ };
8821
+ var hls = this.hls;
8822
+ var player = this;
8823
+ hls.on(Hls__default['default'].Events.FRAG_LOAD_PROGRESS, function (flag, payload) {
8824
+ statsInfo.speed = payload.stats.loaded / 1000;
8825
+ });
8826
+ hls.on(Hls__default['default'].Events.FRAG_PARSING_DATA, function (flag, payload) {
8827
+ if (payload.type === 'video') {
8828
+ mediainfo.fps = parseInt(payload.nb / (payload.endPTS - payload.startPTS));
8829
+ }
8830
+ });
8831
+ hls.on(Hls__default['default'].Events.FRAG_PARSING_INIT_SEGMENT, function (flag, payload) {
8832
+ mediainfo.hasAudio = payload && payload.tracks && payload.tracks.audio ? true : false;
8833
+ mediainfo.hasVideo = payload && payload.tracks && payload.tracks.video ? true : false;
8834
+
8835
+ if (mediainfo.hasAudio && payload.tracks.audio) {
8836
+ var track = payload.tracks.audio;
8837
+ mediainfo.audioChannelCount = track.metadata && track.metadata.channelCount ? track.metadata.channelCount : 0;
8838
+ mediainfo.audioCodec = track.codec;
8839
+ }
8840
+
8841
+ if (mediainfo.hasVideo && payload.tracks.video) {
8842
+ var _track = payload.tracks.video;
8843
+ mediainfo.videoCodec = _track.codec;
8844
+ mediainfo.width = _track.metadata && _track.metadata.width ? _track.metadata.width : 0;
8845
+ mediainfo.height = _track.metadata && _track.metadata.height ? _track.metadata.height : 0;
8846
+ }
8847
+
8848
+ mediainfo.duration = payload.frag && payload.frag.duration ? payload.frag.duration : 0;
8849
+ mediainfo.level = payload.frag && payload.frag.level ? payload.frag.level : 0;
8850
+
8851
+ if (mediainfo.videoCodec || mediainfo.audioCodec) {
8852
+ mediainfo.mimeType = "video/hls; codecs=\"".concat(mediainfo.videoCodec, ";").concat(mediainfo.audioCodec, "\"");
8853
+ }
8854
+
8855
+ player.mediainfo = mediainfo;
8856
+ player.emit("media_info", mediainfo);
8857
+ });
8858
+ this._statisticsTimmer = setInterval(function () {
8859
+ player.emit("statistics_info", statsInfo);
8860
+ statsInfo.speed = 0;
8861
+ }, 1000);
8862
+ }
8863
+ }, {
8864
+ key: "destroy",
8865
+ value: function destroy() {
8866
+ clearInterval(this._statisticsTimmer);
8867
+
8868
+ if (this.hls) {
8869
+ this.hls.destroy();
8870
+ }
8871
+
8872
+ _get(_getPrototypeOf(HlsJsPlayer.prototype), "destroy", this).call(this);
8873
+ }
8874
+ }]);
8875
+
8876
+ return HlsJsPlayer;
8877
+ }(Player__default['default']);
8878
+
8879
+ HlsJsPlayer.isSupported = Hls__default['default'].isSupported;
8880
+ HlsJsPlayer.HlsJs = Hls__default['default'];
8881
+
8531
8882
  function Xgplay(_ref, fRef) {
8532
8883
  var config = _ref.config,
8533
8884
  type = _ref.type,
@@ -8541,7 +8892,7 @@ function Xgplay(_ref, fRef) {
8541
8892
 
8542
8893
  if (ref.current) {
8543
8894
  if ((type === null || type === void 0 ? void 0 : type.indexOf('m3u8')) !== -1) {
8544
- playerRef.current = new HlsJsPlayer__default['default'](_objectSpread2({
8895
+ playerRef.current = new HlsJsPlayer(_objectSpread2({
8545
8896
  el: ref.current,
8546
8897
  width: '100%',
8547
8898
  height: '100%',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "wargerm",
4
- "version": "0.7.45",
4
+ "version": "0.7.46",
5
5
  "scripts": {
6
6
  "dev": "dumi dev",
7
7
  "docs:build": "dumi build",
@@ -51,6 +51,7 @@
51
51
  "dayjs": "^1.11.7",
52
52
  "echarts": "^5.2.2",
53
53
  "echarts-for-react": "^3.0.2",
54
+ "hls.js": "^1.4.12",
54
55
  "lodash-es": "^4.17.21",
55
56
  "react-countup": "^6.0.0",
56
57
  "react-dom": "^17.0.2",
@@ -60,8 +61,7 @@
60
61
  "xgplayer": "^2.31.2",
61
62
  "xgplayer-flv": "^2.5.1",
62
63
  "xgplayer-flv.js": "^2.3.0",
63
- "xgplayer-hls": "^2.5.2",
64
- "xgplayer-hls.js": "^2.2.2"
64
+ "xgplayer-hls": "^2.5.2"
65
65
  },
66
66
  "peerDependencies": {
67
67
  "@ant-design/icons": ">=4.2.0",