wargerm 0.7.45 → 0.7.47
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/components/VideoPlayer/index.d.ts +1 -0
- package/dist/index.esm.js +361 -1
- package/dist/index.js +363 -3
- package/package.json +3 -3
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
|
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,
|
@@ -8632,6 +8983,7 @@ function VideoPlayer$1(_ref, ref) {
|
|
8632
8983
|
layoutIndex = _ref$layoutIndex === void 0 ? 0 : _ref$layoutIndex,
|
8633
8984
|
_ref$url = _ref.url,
|
8634
8985
|
url = _ref$url === void 0 ? [] : _ref$url,
|
8986
|
+
onPlayerClose = _ref.onPlayerClose,
|
8635
8987
|
_ref$layouts = _ref.layouts,
|
8636
8988
|
layouts = _ref$layouts === void 0 ? basicLayouts : _ref$layouts;
|
8637
8989
|
var allLayouts = layouts;
|
@@ -8667,6 +9019,12 @@ function VideoPlayer$1(_ref, ref) {
|
|
8667
9019
|
players = _useState8[0],
|
8668
9020
|
setPlayers = _useState8[1];
|
8669
9021
|
|
9022
|
+
var handleCloseAll = function handleCloseAll() {
|
9023
|
+
setPlayers([]);
|
9024
|
+
setUrls([]);
|
9025
|
+
setCurrentPlayerIndex(0);
|
9026
|
+
};
|
9027
|
+
|
8670
9028
|
var renderDom = useMemo(function () {
|
8671
9029
|
var arr = new Array(allLayouts[currentLayoutIndex].span).fill(0);
|
8672
9030
|
return arr.map(function (item, index) {
|
@@ -8688,6 +9046,7 @@ function VideoPlayer$1(_ref, ref) {
|
|
8688
9046
|
|
8689
9047
|
arr.splice(index, 1, '');
|
8690
9048
|
setUrls(arr);
|
9049
|
+
onPlayerClose && onPlayerClose(index, arr);
|
8691
9050
|
}
|
8692
9051
|
}, /*#__PURE__*/React.createElement(CloseOutlined, null))), /*#__PURE__*/React.createElement(Xgplay$1, {
|
8693
9052
|
setRef: function setRef(ref) {
|
@@ -8768,6 +9127,7 @@ function VideoPlayer$1(_ref, ref) {
|
|
8768
9127
|
currentLayoutIndex: currentLayoutIndex,
|
8769
9128
|
currentPlayerIndex: currentPlayerIndex,
|
8770
9129
|
urls: urls,
|
9130
|
+
handleCloseAll: handleCloseAll,
|
8771
9131
|
loadCamera: loadCamera
|
8772
9132
|
};
|
8773
9133
|
});
|
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
|
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
|
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
|
8895
|
+
playerRef.current = new HlsJsPlayer(_objectSpread2({
|
8545
8896
|
el: ref.current,
|
8546
8897
|
width: '100%',
|
8547
8898
|
height: '100%',
|
@@ -8676,6 +9027,7 @@ function VideoPlayer$1(_ref, ref) {
|
|
8676
9027
|
layoutIndex = _ref$layoutIndex === void 0 ? 0 : _ref$layoutIndex,
|
8677
9028
|
_ref$url = _ref.url,
|
8678
9029
|
url = _ref$url === void 0 ? [] : _ref$url,
|
9030
|
+
onPlayerClose = _ref.onPlayerClose,
|
8679
9031
|
_ref$layouts = _ref.layouts,
|
8680
9032
|
layouts = _ref$layouts === void 0 ? basicLayouts : _ref$layouts;
|
8681
9033
|
var allLayouts = layouts;
|
@@ -8711,6 +9063,12 @@ function VideoPlayer$1(_ref, ref) {
|
|
8711
9063
|
players = _useState8[0],
|
8712
9064
|
setPlayers = _useState8[1];
|
8713
9065
|
|
9066
|
+
var handleCloseAll = function handleCloseAll() {
|
9067
|
+
setPlayers([]);
|
9068
|
+
setUrls([]);
|
9069
|
+
setCurrentPlayerIndex(0);
|
9070
|
+
};
|
9071
|
+
|
8714
9072
|
var renderDom = React.useMemo(function () {
|
8715
9073
|
var arr = new Array(allLayouts[currentLayoutIndex].span).fill(0);
|
8716
9074
|
return arr.map(function (item, index) {
|
@@ -8732,6 +9090,7 @@ function VideoPlayer$1(_ref, ref) {
|
|
8732
9090
|
|
8733
9091
|
arr.splice(index, 1, '');
|
8734
9092
|
setUrls(arr);
|
9093
|
+
onPlayerClose && onPlayerClose(index, arr);
|
8735
9094
|
}
|
8736
9095
|
}, /*#__PURE__*/React__default['default'].createElement(icons.CloseOutlined, null))), /*#__PURE__*/React__default['default'].createElement(Xgplay$1, {
|
8737
9096
|
setRef: function setRef(ref) {
|
@@ -8812,6 +9171,7 @@ function VideoPlayer$1(_ref, ref) {
|
|
8812
9171
|
currentLayoutIndex: currentLayoutIndex,
|
8813
9172
|
currentPlayerIndex: currentPlayerIndex,
|
8814
9173
|
urls: urls,
|
9174
|
+
handleCloseAll: handleCloseAll,
|
8815
9175
|
loadCamera: loadCamera
|
8816
9176
|
};
|
8817
9177
|
});
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"private": false,
|
3
3
|
"name": "wargerm",
|
4
|
-
"version": "0.7.
|
4
|
+
"version": "0.7.47",
|
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",
|