@volcengine/veplayer 2.0.0-rc.1 → 2.1.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.
- package/README.md +14 -1
- package/esm/index.d.ts +2055 -285
- package/esm/veplayer.biz.live.development.js +206 -46
- package/esm/veplayer.biz.live.production.js +1 -1
- package/esm/veplayer.d.ts +4468 -791
- package/esm/veplayer.development.css +1 -1
- package/esm/veplayer.development.js +884 -288
- package/esm/veplayer.live.d.ts +4534 -858
- package/esm/veplayer.live.development.css +1 -1
- package/esm/veplayer.live.development.js +884 -288
- package/esm/veplayer.live.production.css +1 -1
- package/esm/veplayer.live.production.js +4 -4
- package/esm/veplayer.production.css +1 -1
- package/esm/veplayer.production.js +4 -4
- package/esm/veplayer.vod.d.ts +2055 -285
- package/esm/veplayer.vod.development.css +1 -1
- package/esm/veplayer.vod.development.js +653 -213
- package/esm/veplayer.vod.production.css +1 -1
- package/esm/veplayer.vod.production.js +4 -4
- package/package.json +2 -1
- package/umd/index.d.ts +2055 -285
- package/umd/veplayer.biz.live.development.js +206 -46
- package/umd/veplayer.biz.live.production.js +1 -1
- package/umd/veplayer.d.ts +4468 -791
- package/umd/veplayer.development.css +1 -1
- package/umd/veplayer.development.js +884 -288
- package/umd/veplayer.live.d.ts +4534 -858
- package/umd/veplayer.live.development.css +1 -1
- package/umd/veplayer.live.development.js +882 -286
- package/umd/veplayer.live.production.css +1 -1
- package/umd/veplayer.live.production.js +1 -1
- package/umd/veplayer.production.css +1 -1
- package/umd/veplayer.production.js +1 -1
- package/umd/veplayer.vod.d.ts +2055 -285
- package/umd/veplayer.vod.development.css +1 -1
- package/umd/veplayer.vod.development.js +653 -213
- package/umd/veplayer.vod.production.css +1 -1
- package/umd/veplayer.vod.production.js +1 -1
|
@@ -8,6 +8,16 @@ var __publicField = (obj, key, value) => {
|
|
|
8
8
|
return value;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
+
var Codec = /* @__PURE__ */ ((Codec2) => {
|
|
12
|
+
Codec2["H265"] = "h265";
|
|
13
|
+
Codec2["H264"] = "h264";
|
|
14
|
+
return Codec2;
|
|
15
|
+
})(Codec || {});
|
|
16
|
+
var DecodeType = /* @__PURE__ */ ((DecodeType2) => {
|
|
17
|
+
DecodeType2["Software"] = "software";
|
|
18
|
+
DecodeType2["Hardware"] = "hardware";
|
|
19
|
+
return DecodeType2;
|
|
20
|
+
})(DecodeType || {});
|
|
11
21
|
function ownKeys(object, enumerableOnly) {
|
|
12
22
|
var keys = Object.keys(object);
|
|
13
23
|
if (Object.getOwnPropertySymbols) {
|
|
@@ -1004,6 +1014,9 @@ var __publicField = (obj, key, value) => {
|
|
|
1004
1014
|
}
|
|
1005
1015
|
return /^blob/.test(video.currentSrc) || /^blob/.test(video.src);
|
|
1006
1016
|
};
|
|
1017
|
+
util.isBlob = function(url) {
|
|
1018
|
+
return /^blob/.test(url);
|
|
1019
|
+
};
|
|
1007
1020
|
util.generateSessionId = function() {
|
|
1008
1021
|
var did = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
|
1009
1022
|
var d = (/* @__PURE__ */ new Date()).getTime();
|
|
@@ -1064,6 +1077,69 @@ var __publicField = (obj, key, value) => {
|
|
|
1064
1077
|
}
|
|
1065
1078
|
return val % 360;
|
|
1066
1079
|
};
|
|
1080
|
+
util.getIndexByTime = function(time, segments) {
|
|
1081
|
+
var _len = segments.length;
|
|
1082
|
+
var _index = -1;
|
|
1083
|
+
if (_len < 1) {
|
|
1084
|
+
return _index;
|
|
1085
|
+
}
|
|
1086
|
+
if (time <= segments[0].end || _len < 2) {
|
|
1087
|
+
_index = 0;
|
|
1088
|
+
} else if (time > segments[_len - 1].end) {
|
|
1089
|
+
_index = _len - 1;
|
|
1090
|
+
} else {
|
|
1091
|
+
for (var i = 1; i < _len; i++) {
|
|
1092
|
+
if (time > segments[i - 1].end && time <= segments[i].end) {
|
|
1093
|
+
_index = i;
|
|
1094
|
+
break;
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
return _index;
|
|
1099
|
+
};
|
|
1100
|
+
util.getOffsetCurrentTime = function(currentTime, segments) {
|
|
1101
|
+
var index = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : -1;
|
|
1102
|
+
var _index = -1;
|
|
1103
|
+
if (index >= 0 && index < segments.length) {
|
|
1104
|
+
_index = index;
|
|
1105
|
+
} else {
|
|
1106
|
+
_index = util.getIndexByTime(currentTime, segments);
|
|
1107
|
+
}
|
|
1108
|
+
if (_index < 0) {
|
|
1109
|
+
return -1;
|
|
1110
|
+
}
|
|
1111
|
+
var _len = segments.length;
|
|
1112
|
+
var _segments$_index = segments[_index], start = _segments$_index.start, end = _segments$_index.end, cTime = _segments$_index.cTime, offset = _segments$_index.offset;
|
|
1113
|
+
if (currentTime < start) {
|
|
1114
|
+
return cTime;
|
|
1115
|
+
} else if (currentTime >= start && currentTime <= end) {
|
|
1116
|
+
return currentTime - offset;
|
|
1117
|
+
} else if (currentTime > end && _index >= _len - 1) {
|
|
1118
|
+
return end;
|
|
1119
|
+
}
|
|
1120
|
+
return -1;
|
|
1121
|
+
};
|
|
1122
|
+
util.getCurrentTimeByOffset = function(offsetTime, segments) {
|
|
1123
|
+
var _index = -1;
|
|
1124
|
+
if (!segments || segments.length < 0) {
|
|
1125
|
+
return offsetTime;
|
|
1126
|
+
}
|
|
1127
|
+
for (var i = 0; i < segments.length; i++) {
|
|
1128
|
+
if (offsetTime <= segments[i].duration) {
|
|
1129
|
+
_index = i;
|
|
1130
|
+
break;
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
if (_index !== -1) {
|
|
1134
|
+
var start = segments[_index].start;
|
|
1135
|
+
if (_index - 1 < 0) {
|
|
1136
|
+
return start + offsetTime;
|
|
1137
|
+
} else {
|
|
1138
|
+
return start + (offsetTime - segments[_index - 1].duration);
|
|
1139
|
+
}
|
|
1140
|
+
}
|
|
1141
|
+
return offsetTime;
|
|
1142
|
+
};
|
|
1067
1143
|
function isObject(value) {
|
|
1068
1144
|
var type = _typeof(value);
|
|
1069
1145
|
return value !== null && (type === "object" || type === "function");
|
|
@@ -1153,7 +1229,7 @@ var __publicField = (obj, key, value) => {
|
|
|
1153
1229
|
function debounced() {
|
|
1154
1230
|
var time = Date.now();
|
|
1155
1231
|
var isInvoking = shouldInvoke(time);
|
|
1156
|
-
for (var
|
|
1232
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key = 0; _key < _len2; _key++) {
|
|
1157
1233
|
args[_key] = arguments[_key];
|
|
1158
1234
|
}
|
|
1159
1235
|
lastArgs = args;
|
|
@@ -1360,7 +1436,7 @@ var __publicField = (obj, key, value) => {
|
|
|
1360
1436
|
}
|
|
1361
1437
|
}
|
|
1362
1438
|
};
|
|
1363
|
-
var version = "3.0.
|
|
1439
|
+
var version = "3.0.10-alpha.4";
|
|
1364
1440
|
var ERROR_TYPE_MAP = {
|
|
1365
1441
|
1: "media",
|
|
1366
1442
|
2: "media",
|
|
@@ -1446,6 +1522,7 @@ var __publicField = (obj, key, value) => {
|
|
|
1446
1522
|
var DURATION_CHANGE = "durationchange";
|
|
1447
1523
|
var VOLUME_CHANGE = "volumechange";
|
|
1448
1524
|
var LOADED_DATA = "loadeddata";
|
|
1525
|
+
var LOADED_METADATA = "loadedmetadata";
|
|
1449
1526
|
var RATE_CHANGE = "ratechange";
|
|
1450
1527
|
var PROGRESS = "progress";
|
|
1451
1528
|
var LOAD_START = "loadstart";
|
|
@@ -1485,7 +1562,7 @@ var __publicField = (obj, key, value) => {
|
|
|
1485
1562
|
var SOURCE_ERROR = "source_error";
|
|
1486
1563
|
var SOURCE_SUCCESS = "source_success";
|
|
1487
1564
|
var SWITCH_SUBTITLE = "switch_subtitle";
|
|
1488
|
-
var VIDEO_EVENTS = ["play", "playing", "ended", "pause", "error", "seeking", "seeked", "timeupdate", "waiting", "canplay", "canplaythrough", "durationchange", "volumechange", "loadeddata", "ratechange", "progress", "loadstart", "emptied", "stalled", "suspend", "abort", "lowdecode"];
|
|
1565
|
+
var VIDEO_EVENTS = ["play", "playing", "ended", "pause", "error", "seeking", "seeked", "timeupdate", "waiting", "canplay", "canplaythrough", "durationchange", "volumechange", "loadeddata", "loadedmetadata", "ratechange", "progress", "loadstart", "emptied", "stalled", "suspend", "abort", "lowdecode"];
|
|
1489
1566
|
var STATS_EVENTS = {
|
|
1490
1567
|
STATS_INFO: "stats_info",
|
|
1491
1568
|
STATS_DOWNLOAD: "stats_download",
|
|
@@ -1514,6 +1591,7 @@ var __publicField = (obj, key, value) => {
|
|
|
1514
1591
|
FPS_STUCK,
|
|
1515
1592
|
FULLSCREEN_CHANGE,
|
|
1516
1593
|
LOADED_DATA,
|
|
1594
|
+
LOADED_METADATA,
|
|
1517
1595
|
LOAD_START,
|
|
1518
1596
|
MINI_STATE_CHANGE,
|
|
1519
1597
|
PAUSE,
|
|
@@ -1651,6 +1729,9 @@ var __publicField = (obj, key, value) => {
|
|
|
1651
1729
|
if (options.loop) {
|
|
1652
1730
|
_this.mediaConfig.loop = "loop";
|
|
1653
1731
|
}
|
|
1732
|
+
if (options.autoplayMuted && !Object.prototype.hasOwnProperty.call(_this.mediaConfig, "muted")) {
|
|
1733
|
+
_this.mediaConfig.muted = true;
|
|
1734
|
+
}
|
|
1654
1735
|
_this.media = util.createDom(_this.mediaConfig.mediaType, "", _this.mediaConfig, "");
|
|
1655
1736
|
if (options.defaultPlaybackRate) {
|
|
1656
1737
|
_this.media.defaultPlaybackRate = _this.media.playbackRate = options.defaultPlaybackRate;
|
|
@@ -1729,10 +1810,11 @@ var __publicField = (obj, key, value) => {
|
|
|
1729
1810
|
var _this6 = this;
|
|
1730
1811
|
video.removeAttribute("src");
|
|
1731
1812
|
video.load();
|
|
1732
|
-
urls.forEach(function(item) {
|
|
1813
|
+
urls.forEach(function(item, index) {
|
|
1733
1814
|
_this6.media.appendChild(util.createDom("source", "", {
|
|
1734
1815
|
src: "".concat(item.src),
|
|
1735
|
-
type: "".concat(item.type || "")
|
|
1816
|
+
type: "".concat(item.type || ""),
|
|
1817
|
+
"data-index": index + 1
|
|
1736
1818
|
}));
|
|
1737
1819
|
});
|
|
1738
1820
|
var _c = video.children;
|
|
@@ -1740,6 +1822,7 @@ var __publicField = (obj, key, value) => {
|
|
|
1740
1822
|
return;
|
|
1741
1823
|
}
|
|
1742
1824
|
this._videoSourceCount = _c.length;
|
|
1825
|
+
this._videoSourceIndex = _c.length;
|
|
1743
1826
|
this._vLoadeddata = function(e) {
|
|
1744
1827
|
_this6.emit(SOURCE_SUCCESS, {
|
|
1745
1828
|
src: e.target.currentSrc,
|
|
@@ -1754,8 +1837,9 @@ var __publicField = (obj, key, value) => {
|
|
|
1754
1837
|
}
|
|
1755
1838
|
}
|
|
1756
1839
|
!this._sourceError && (this._sourceError = function(e) {
|
|
1757
|
-
|
|
1758
|
-
|
|
1840
|
+
var _dIndex = parseInt(e.target.getAttribute("data-index"), 10);
|
|
1841
|
+
_this6._videoSourceIndex--;
|
|
1842
|
+
if (_this6._videoSourceIndex === 0 || _dIndex >= _this6._videoSourceCount) {
|
|
1759
1843
|
var _err = {
|
|
1760
1844
|
code: 4,
|
|
1761
1845
|
message: "sources_load_error"
|
|
@@ -2082,7 +2166,7 @@ var __publicField = (obj, key, value) => {
|
|
|
2082
2166
|
this.emit(WAITING);
|
|
2083
2167
|
this._currentTime = 0;
|
|
2084
2168
|
this._duration = 0;
|
|
2085
|
-
if (
|
|
2169
|
+
if (util.isMSE(this.media)) {
|
|
2086
2170
|
this.onWaiting();
|
|
2087
2171
|
return;
|
|
2088
2172
|
}
|
|
@@ -3790,6 +3874,7 @@ var __publicField = (obj, key, value) => {
|
|
|
3790
3874
|
},
|
|
3791
3875
|
enableSwipeHandler: function enableSwipeHandler() {
|
|
3792
3876
|
},
|
|
3877
|
+
preProcessUrl: null,
|
|
3793
3878
|
ignores: [],
|
|
3794
3879
|
whitelist: [],
|
|
3795
3880
|
inactive: 3e3,
|
|
@@ -3871,7 +3956,7 @@ var __publicField = (obj, key, value) => {
|
|
|
3871
3956
|
autoHide: false
|
|
3872
3957
|
});
|
|
3873
3958
|
});
|
|
3874
|
-
_defineProperty(_assertThisInitialized(_this), "onMouseLeave", function() {
|
|
3959
|
+
_defineProperty(_assertThisInitialized(_this), "onMouseLeave", function(e) {
|
|
3875
3960
|
var _assertThisInitialize2 = _assertThisInitialized(_this), player = _assertThisInitialize2.player;
|
|
3876
3961
|
player.focus();
|
|
3877
3962
|
});
|
|
@@ -3949,12 +4034,13 @@ var __publicField = (obj, key, value) => {
|
|
|
3949
4034
|
}, {
|
|
3950
4035
|
key: "show",
|
|
3951
4036
|
value: function show() {
|
|
3952
|
-
|
|
4037
|
+
this.root.style.display = "";
|
|
4038
|
+
this.player.focus();
|
|
3953
4039
|
}
|
|
3954
4040
|
}, {
|
|
3955
4041
|
key: "hide",
|
|
3956
4042
|
value: function hide() {
|
|
3957
|
-
|
|
4043
|
+
this.root.style.display = "none";
|
|
3958
4044
|
}
|
|
3959
4045
|
}, {
|
|
3960
4046
|
key: "mode",
|
|
@@ -4356,6 +4442,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4356
4442
|
_this.cssfullscreen = false;
|
|
4357
4443
|
_this.isRotateFullscreen = false;
|
|
4358
4444
|
_this._fullscreenEl = null;
|
|
4445
|
+
_this.timeSegments = [];
|
|
4359
4446
|
_this._cssfullscreenEl = null;
|
|
4360
4447
|
_this.curDefinition = null;
|
|
4361
4448
|
_this._orgCss = "";
|
|
@@ -4365,7 +4452,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4365
4452
|
_this.videoPos = {
|
|
4366
4453
|
pi: 1,
|
|
4367
4454
|
scale: 0,
|
|
4368
|
-
rotate:
|
|
4455
|
+
rotate: -1,
|
|
4369
4456
|
x: 0,
|
|
4370
4457
|
y: 0,
|
|
4371
4458
|
h: -1,
|
|
@@ -4373,11 +4460,21 @@ var __publicField = (obj, key, value) => {
|
|
|
4373
4460
|
vy: 0,
|
|
4374
4461
|
vx: 0
|
|
4375
4462
|
};
|
|
4463
|
+
_this.sizeInfo = {
|
|
4464
|
+
width: 0,
|
|
4465
|
+
height: 0,
|
|
4466
|
+
left: 0,
|
|
4467
|
+
top: 0
|
|
4468
|
+
};
|
|
4376
4469
|
_this._accPlayed = {
|
|
4377
4470
|
t: 0,
|
|
4378
4471
|
acc: 0,
|
|
4379
4472
|
loopAcc: 0
|
|
4380
4473
|
};
|
|
4474
|
+
_this._offsetInfo = {
|
|
4475
|
+
currentTime: -1,
|
|
4476
|
+
duration: 0
|
|
4477
|
+
};
|
|
4381
4478
|
_this.innerContainer = null;
|
|
4382
4479
|
_this.controls = null;
|
|
4383
4480
|
_this.topBar = null;
|
|
@@ -4390,6 +4487,9 @@ var __publicField = (obj, key, value) => {
|
|
|
4390
4487
|
_this.isUserActive = false;
|
|
4391
4488
|
_this._onceSeekCanplay = null;
|
|
4392
4489
|
_this._isPauseBeforeSeek = 0;
|
|
4490
|
+
_this.innerStates = {
|
|
4491
|
+
isActiveLocked: false
|
|
4492
|
+
};
|
|
4393
4493
|
var rootInit = _this._initDOM();
|
|
4394
4494
|
if (!rootInit) {
|
|
4395
4495
|
console.error(new Error("can't find the dom which id is ".concat(_this.config.id, " or this.config.el does not exist")));
|
|
@@ -4475,16 +4575,16 @@ var __publicField = (obj, key, value) => {
|
|
|
4475
4575
|
this.addClass(STATE_CLASS.NO_START);
|
|
4476
4576
|
}
|
|
4477
4577
|
if (this.config.fluid) {
|
|
4478
|
-
var _this$config3 = this.config,
|
|
4479
|
-
if (typeof
|
|
4480
|
-
|
|
4481
|
-
|
|
4578
|
+
var _this$config3 = this.config, _width = _this$config3.width, _height = _this$config3.height;
|
|
4579
|
+
if (typeof _width !== "number" || typeof _height !== "number") {
|
|
4580
|
+
_width = 600;
|
|
4581
|
+
_height = 337.5;
|
|
4482
4582
|
}
|
|
4483
4583
|
var style = {
|
|
4484
4584
|
width: "100%",
|
|
4485
4585
|
height: "0",
|
|
4486
4586
|
"max-width": "100%",
|
|
4487
|
-
"padding-top": "".concat(
|
|
4587
|
+
"padding-top": "".concat(_height * 100 / _width, "%")
|
|
4488
4588
|
};
|
|
4489
4589
|
Object.keys(style).forEach(function(key) {
|
|
4490
4590
|
_this2.root.style[key] = style[key];
|
|
@@ -4500,6 +4600,11 @@ var __publicField = (obj, key, value) => {
|
|
|
4500
4600
|
}
|
|
4501
4601
|
});
|
|
4502
4602
|
}
|
|
4603
|
+
var _this$root$getBoundin = this.root.getBoundingClientRect(), width = _this$root$getBoundin.width, height = _this$root$getBoundin.height, left = _this$root$getBoundin.left, top = _this$root$getBoundin.top;
|
|
4604
|
+
this.sizeInfo.width = width;
|
|
4605
|
+
this.sizeInfo.height = height;
|
|
4606
|
+
this.sizeInfo.left = left;
|
|
4607
|
+
this.sizeInfo.top = top;
|
|
4503
4608
|
return true;
|
|
4504
4609
|
}
|
|
4505
4610
|
}, {
|
|
@@ -4583,7 +4688,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4583
4688
|
var readyState = this.media.readyState;
|
|
4584
4689
|
XG_DEBUG.logInfo("_startInit readyState", readyState);
|
|
4585
4690
|
if (this.config.autoplay) {
|
|
4586
|
-
!
|
|
4691
|
+
!util.isMSE(this.media) && this.load();
|
|
4587
4692
|
(sniffer.os.isIpad || sniffer.os.isPhone) && this.mediaPlay();
|
|
4588
4693
|
}
|
|
4589
4694
|
if (readyState >= 2) {
|
|
@@ -4811,7 +4916,8 @@ var __publicField = (obj, key, value) => {
|
|
|
4811
4916
|
if (!url) {
|
|
4812
4917
|
url = _this8.url || _this8.config.url;
|
|
4813
4918
|
}
|
|
4814
|
-
var
|
|
4919
|
+
var _furl = _this8.preProcessUrl(url);
|
|
4920
|
+
var ret = _this8._startInit(_furl.url);
|
|
4815
4921
|
return ret;
|
|
4816
4922
|
}).catch(function(e) {
|
|
4817
4923
|
e.fileName = "player";
|
|
@@ -4828,6 +4934,7 @@ var __publicField = (obj, key, value) => {
|
|
|
4828
4934
|
if (util.typeOf(url) === "Object") {
|
|
4829
4935
|
_src = url.url;
|
|
4830
4936
|
}
|
|
4937
|
+
_src = this.preProcessUrl(_src).url;
|
|
4831
4938
|
var curTime = this.currentTime;
|
|
4832
4939
|
var isPaused = this.paused && !this.isError;
|
|
4833
4940
|
this.src = _src;
|
|
@@ -5166,7 +5273,11 @@ var __publicField = (obj, key, value) => {
|
|
|
5166
5273
|
this.addClass(STATE_CLASS.LOADING);
|
|
5167
5274
|
runHooks(this, "retry", function() {
|
|
5168
5275
|
var cur = _this20.currentTime;
|
|
5169
|
-
|
|
5276
|
+
var url = _this20.config.url;
|
|
5277
|
+
var _srcRet = !util.isMSE(_this20.media) ? _this20.preProcessUrl(url) : {
|
|
5278
|
+
url
|
|
5279
|
+
};
|
|
5280
|
+
_this20.src = _srcRet.url;
|
|
5170
5281
|
!_this20.config.isLive && (_this20.currentTime = cur);
|
|
5171
5282
|
_this20.once(CANPLAY, function() {
|
|
5172
5283
|
_this20.mediaPlay();
|
|
@@ -5227,7 +5338,7 @@ var __publicField = (obj, key, value) => {
|
|
|
5227
5338
|
var fullEl = util.getFullScreenEl();
|
|
5228
5339
|
if (fullEl === this._fullscreenEl) {
|
|
5229
5340
|
this.onFullscreenChange();
|
|
5230
|
-
return;
|
|
5341
|
+
return Promise.resolve();
|
|
5231
5342
|
}
|
|
5232
5343
|
try {
|
|
5233
5344
|
for (var i = 0; i < GET_FULLSCREEN_API.length; i++) {
|
|
@@ -5400,30 +5511,38 @@ var __publicField = (obj, key, value) => {
|
|
|
5400
5511
|
key: "onFocus",
|
|
5401
5512
|
value: function onFocus() {
|
|
5402
5513
|
var _this21 = this;
|
|
5403
|
-
var
|
|
5514
|
+
var data = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
|
|
5515
|
+
autoHide: true,
|
|
5516
|
+
delay: 3e3
|
|
5517
|
+
};
|
|
5518
|
+
var innerStates = this.innerStates;
|
|
5404
5519
|
this.isActive = true;
|
|
5405
5520
|
this.removeClass(STATE_CLASS.INACTIVE);
|
|
5406
5521
|
if (this.userTimer) {
|
|
5407
5522
|
util.clearTimeout(this, this.userTimer);
|
|
5408
5523
|
this.userTimer = null;
|
|
5409
5524
|
}
|
|
5410
|
-
if (
|
|
5525
|
+
if (data.isLock !== void 0) {
|
|
5526
|
+
innerStates.isActiveLocked = data.isLock;
|
|
5527
|
+
}
|
|
5528
|
+
if (data.autoHide === false || data.isLock === true || innerStates.isActiveLocked) {
|
|
5411
5529
|
if (this.userTimer) {
|
|
5412
5530
|
util.clearTimeout(this, this.userTimer);
|
|
5413
5531
|
this.userTimer = null;
|
|
5414
5532
|
}
|
|
5415
5533
|
return;
|
|
5416
5534
|
}
|
|
5535
|
+
var time = data && data.delay ? data.delay : this.config.inactive;
|
|
5417
5536
|
this.userTimer = util.setTimeout(this, function() {
|
|
5418
5537
|
_this21.userTimer = null;
|
|
5419
5538
|
_this21.blur();
|
|
5420
|
-
},
|
|
5539
|
+
}, time);
|
|
5421
5540
|
}
|
|
5422
5541
|
}, {
|
|
5423
5542
|
key: "onBlur",
|
|
5424
5543
|
value: function onBlur() {
|
|
5425
|
-
var
|
|
5426
|
-
if (!this.isActive) {
|
|
5544
|
+
var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$ignorePaused = _ref.ignorePaused, ignorePaused = _ref$ignorePaused === void 0 ? false : _ref$ignorePaused;
|
|
5545
|
+
if (!this.isActive || this.innerStates.isActiveLocked) {
|
|
5427
5546
|
return;
|
|
5428
5547
|
}
|
|
5429
5548
|
var closePauseVideoFocus = this.config.closePauseVideoFocus;
|
|
@@ -5546,7 +5665,7 @@ var __publicField = (obj, key, value) => {
|
|
|
5546
5665
|
}, {
|
|
5547
5666
|
key: "onTimeupdate",
|
|
5548
5667
|
value: function onTimeupdate() {
|
|
5549
|
-
!this._videoHeight && this.resize();
|
|
5668
|
+
!this._videoHeight && this.media.videoHeight && this.resize();
|
|
5550
5669
|
if ((this.waitTimer || this.hasClass(STATE_CLASS.LOADING)) && this.media.readyState > 2) {
|
|
5551
5670
|
this.removeClass(STATE_CLASS.LOADING);
|
|
5552
5671
|
util.clearTimeout(this, this.waitTimer);
|
|
@@ -5621,8 +5740,11 @@ var __publicField = (obj, key, value) => {
|
|
|
5621
5740
|
key: "resizePosition",
|
|
5622
5741
|
value: function resizePosition() {
|
|
5623
5742
|
var _this$videoPos = this.videoPos, rotate = _this$videoPos.rotate, vy = _this$videoPos.vy, vx = _this$videoPos.vx, h = _this$videoPos.h, w = _this$videoPos.w;
|
|
5743
|
+
if (rotate < 0 && !vy && !vx) {
|
|
5744
|
+
return;
|
|
5745
|
+
}
|
|
5624
5746
|
var _pi = this.videoPos._pi;
|
|
5625
|
-
if (!_pi) {
|
|
5747
|
+
if (!_pi && this.media.videoHeight) {
|
|
5626
5748
|
_pi = this.media.videoWidth / this.media.videoHeight * 100;
|
|
5627
5749
|
}
|
|
5628
5750
|
if (!_pi) {
|
|
@@ -5722,9 +5844,14 @@ var __publicField = (obj, key, value) => {
|
|
|
5722
5844
|
if (!this.media) {
|
|
5723
5845
|
return;
|
|
5724
5846
|
}
|
|
5847
|
+
var containerSize = this.root.getBoundingClientRect();
|
|
5848
|
+
this.sizeInfo.width = containerSize.width;
|
|
5849
|
+
this.sizeInfo.height = containerSize.height;
|
|
5850
|
+
this.sizeInfo.left = containerSize.left;
|
|
5851
|
+
this.sizeInfo.top = containerSize.top;
|
|
5725
5852
|
var _this$media = this.media, videoWidth = _this$media.videoWidth, videoHeight = _this$media.videoHeight;
|
|
5726
5853
|
var _this$config6 = this.config, fitVideoSize = _this$config6.fitVideoSize, videoFillMode = _this$config6.videoFillMode;
|
|
5727
|
-
if (videoFillMode === "fill" || videoFillMode === "cover") {
|
|
5854
|
+
if (videoFillMode === "fill" || videoFillMode === "cover" || videoFillMode === "contain") {
|
|
5728
5855
|
this.setAttribute("data-xgfill", videoFillMode);
|
|
5729
5856
|
}
|
|
5730
5857
|
if (!videoHeight || !videoWidth) {
|
|
@@ -5732,7 +5859,6 @@ var __publicField = (obj, key, value) => {
|
|
|
5732
5859
|
}
|
|
5733
5860
|
this._videoHeight = videoHeight;
|
|
5734
5861
|
this._videoWidth = videoWidth;
|
|
5735
|
-
var containerSize = this.root.getBoundingClientRect();
|
|
5736
5862
|
var controlsHeight = this.controls && this.innerContainer ? this.controls.root.getBoundingClientRect().height : 0;
|
|
5737
5863
|
var width = containerSize.width;
|
|
5738
5864
|
var height = containerSize.height - controlsHeight;
|
|
@@ -5787,6 +5913,14 @@ var __publicField = (obj, key, value) => {
|
|
|
5787
5913
|
XG_DEBUG.logInfo("setState", "state from:".concat(STATE_ARRAY[this.state], " to:").concat(STATE_ARRAY[newState]));
|
|
5788
5914
|
this._state = newState;
|
|
5789
5915
|
}
|
|
5916
|
+
}, {
|
|
5917
|
+
key: "preProcessUrl",
|
|
5918
|
+
value: function preProcessUrl(url, ext) {
|
|
5919
|
+
var preProcessUrl2 = this.config.preProcessUrl;
|
|
5920
|
+
return !util.isBlob(url) && preProcessUrl2 && typeof preProcessUrl2 === "function" ? preProcessUrl2(url, ext) : {
|
|
5921
|
+
url
|
|
5922
|
+
};
|
|
5923
|
+
}
|
|
5790
5924
|
}, {
|
|
5791
5925
|
key: "state",
|
|
5792
5926
|
get: function get() {
|
|
@@ -5960,9 +6094,8 @@ var __publicField = (obj, key, value) => {
|
|
|
5960
6094
|
}, {
|
|
5961
6095
|
key: "cumulateTime",
|
|
5962
6096
|
get: function get() {
|
|
5963
|
-
var _accPlayed = this._accPlayed;
|
|
5964
|
-
|
|
5965
|
-
return _accPlayed.acc;
|
|
6097
|
+
var _this$_accPlayed = this._accPlayed, acc = _this$_accPlayed.acc, t = _this$_accPlayed.t;
|
|
6098
|
+
return t ? (/* @__PURE__ */ new Date()).getTime() - t + acc : acc;
|
|
5966
6099
|
}
|
|
5967
6100
|
}, {
|
|
5968
6101
|
key: "zoom",
|
|
@@ -6001,6 +6134,22 @@ var __publicField = (obj, key, value) => {
|
|
|
6001
6134
|
set: function set(val) {
|
|
6002
6135
|
REAL_TIME_SPEED = val;
|
|
6003
6136
|
}
|
|
6137
|
+
}, {
|
|
6138
|
+
key: "offsetCurrentTime",
|
|
6139
|
+
get: function get() {
|
|
6140
|
+
return this._offsetInfo.currentTime || 0;
|
|
6141
|
+
},
|
|
6142
|
+
set: function set(val) {
|
|
6143
|
+
this._offsetInfo.currentTime = val;
|
|
6144
|
+
}
|
|
6145
|
+
}, {
|
|
6146
|
+
key: "offsetDuration",
|
|
6147
|
+
get: function get() {
|
|
6148
|
+
return this._offsetInfo.duration || 0;
|
|
6149
|
+
},
|
|
6150
|
+
set: function set(val) {
|
|
6151
|
+
this._offsetInfo.duration = val || 0;
|
|
6152
|
+
}
|
|
6004
6153
|
}, {
|
|
6005
6154
|
key: "hook",
|
|
6006
6155
|
value: function hook$1(hookName, handler) {
|
|
@@ -6126,7 +6275,7 @@ var __publicField = (obj, key, value) => {
|
|
|
6126
6275
|
ErrorCode2[ErrorCode2["RUNTIME_NO_CANPLAY_ERROR"] = 9001] = "RUNTIME_NO_CANPLAY_ERROR";
|
|
6127
6276
|
ErrorCode2[ErrorCode2["RUNTIME_BUFFERBREAK_ERROR"] = 9002] = "RUNTIME_BUFFERBREAK_ERROR";
|
|
6128
6277
|
ErrorCode2[ErrorCode2["RUNTIME_BWAITING_TIMEOUT_ERROR"] = 9002] = "RUNTIME_BWAITING_TIMEOUT_ERROR";
|
|
6129
|
-
ErrorCode2[ErrorCode2["MODULE_LOAD_ERROR"] =
|
|
6278
|
+
ErrorCode2[ErrorCode2["MODULE_LOAD_ERROR"] = 110] = "MODULE_LOAD_ERROR";
|
|
6130
6279
|
ErrorCode2["UNKNOWN"] = "UNKNOWN";
|
|
6131
6280
|
return ErrorCode2;
|
|
6132
6281
|
})(ErrorCode || {});
|
|
@@ -6212,7 +6361,7 @@ var __publicField = (obj, key, value) => {
|
|
|
6212
6361
|
/* Error */
|
|
6213
6362
|
},
|
|
6214
6363
|
[
|
|
6215
|
-
|
|
6364
|
+
110
|
|
6216
6365
|
/* MODULE_LOAD_ERROR */
|
|
6217
6366
|
]: {
|
|
6218
6367
|
messageTextKey: "MODULE_LOAD_ERROR",
|
|
@@ -6287,6 +6436,11 @@ var __publicField = (obj, key, value) => {
|
|
|
6287
6436
|
}
|
|
6288
6437
|
};
|
|
6289
6438
|
class VeError extends Error {
|
|
6439
|
+
/**
|
|
6440
|
+
* @hidden
|
|
6441
|
+
* @param error
|
|
6442
|
+
* @param i18n
|
|
6443
|
+
*/
|
|
6290
6444
|
constructor(error2, i18n) {
|
|
6291
6445
|
var _a;
|
|
6292
6446
|
const errorInfo = typeof error2 === "string" ? {
|
|
@@ -6294,8 +6448,17 @@ var __publicField = (obj, key, value) => {
|
|
|
6294
6448
|
} : error2;
|
|
6295
6449
|
const message = (i18n == null ? void 0 : i18n.getText(errorInfo == null ? void 0 : errorInfo.messageTextKey)) ?? (errorInfo == null ? void 0 : errorInfo.message) ?? ((_a = errorInfo == null ? void 0 : errorInfo.error) == null ? void 0 : _a.message) ?? (i18n == null ? void 0 : i18n.getText("UNKNOWN"));
|
|
6296
6450
|
super(message);
|
|
6451
|
+
/**
|
|
6452
|
+
* @brief 错误码,对应[错误码字典](#错误码)。
|
|
6453
|
+
*/
|
|
6297
6454
|
__publicField(this, "errorCode");
|
|
6455
|
+
/**
|
|
6456
|
+
* @brief 错误等级。
|
|
6457
|
+
*/
|
|
6298
6458
|
__publicField(this, "level");
|
|
6459
|
+
/**
|
|
6460
|
+
* @brief 其他错误信息。
|
|
6461
|
+
*/
|
|
6299
6462
|
__publicField(this, "ext");
|
|
6300
6463
|
this.errorCode = (errorInfo == null ? void 0 : errorInfo.errorCode) ?? "UNKNOWN";
|
|
6301
6464
|
this.level = (errorInfo == null ? void 0 : errorInfo.level) ?? "Error";
|
|
@@ -7632,10 +7795,56 @@ var __publicField = (obj, key, value) => {
|
|
|
7632
7795
|
var Touche = /* @__PURE__ */ function() {
|
|
7633
7796
|
function Touche2(dom) {
|
|
7634
7797
|
var _this = this;
|
|
7635
|
-
var
|
|
7798
|
+
var _config = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {
|
|
7636
7799
|
eventType: "touch"
|
|
7637
7800
|
};
|
|
7638
7801
|
_classCallCheck(this, Touche2);
|
|
7802
|
+
_defineProperty(this, "onTouchStart", function(e) {
|
|
7803
|
+
var _pos = _this._pos, root = _this.root;
|
|
7804
|
+
var touch = getTouch(e.touches);
|
|
7805
|
+
_pos.x = touch ? parseInt(touch.pageX, 10) : e.pageX;
|
|
7806
|
+
_pos.y = touch ? parseInt(touch.pageX, 10) : e.pageX;
|
|
7807
|
+
_pos.start = true;
|
|
7808
|
+
_this.__setPress(e);
|
|
7809
|
+
root.addEventListener(_this.events.end, _this.onTouchEnd);
|
|
7810
|
+
root.addEventListener(_this.events.cancel, _this.onTouchCancel);
|
|
7811
|
+
root.addEventListener(_this.events.move, _this.onTouchMove);
|
|
7812
|
+
_this.trigger(EVENTS.TOUCH_START, e);
|
|
7813
|
+
});
|
|
7814
|
+
_defineProperty(this, "onTouchCancel", function(e) {
|
|
7815
|
+
_this.onTouchEnd(e);
|
|
7816
|
+
});
|
|
7817
|
+
_defineProperty(this, "onTouchEnd", function(e) {
|
|
7818
|
+
var _pos = _this._pos, root = _this.root;
|
|
7819
|
+
_this.__clearPress();
|
|
7820
|
+
root.removeEventListener(_this.events.cancel, _this.onTouchCancel);
|
|
7821
|
+
root.removeEventListener(_this.events.end, _this.onTouchEnd);
|
|
7822
|
+
root.removeEventListener(_this.events.move, _this.onTouchMove);
|
|
7823
|
+
e.moving = _pos.moving;
|
|
7824
|
+
e.press = _pos.press;
|
|
7825
|
+
_pos.press && _this.trigger(EVENTS.PRESS_END, e);
|
|
7826
|
+
_this.trigger(EVENTS.TOUCH_END, e);
|
|
7827
|
+
!_pos.press && !_pos.moving && _this.__setDb(e);
|
|
7828
|
+
_pos.press = false;
|
|
7829
|
+
_pos.start = false;
|
|
7830
|
+
_pos.moving = false;
|
|
7831
|
+
});
|
|
7832
|
+
_defineProperty(this, "onTouchMove", function(e) {
|
|
7833
|
+
var _pos = _this._pos, config = _this.config;
|
|
7834
|
+
var touch = getTouch(e.touches);
|
|
7835
|
+
var x = touch ? parseInt(touch.pageX, 10) : e.pageX;
|
|
7836
|
+
var y = touch ? parseInt(touch.pageY, 10) : e.pageX;
|
|
7837
|
+
var diffx = x - _pos.x;
|
|
7838
|
+
var diffy = y - _pos.y;
|
|
7839
|
+
if (Math.abs(diffy) < config.miniStep && Math.abs(diffx) < config.miniStep) {
|
|
7840
|
+
return;
|
|
7841
|
+
}
|
|
7842
|
+
_this.__clearPress();
|
|
7843
|
+
_pos.press && _this.trigger(EVENTS.PRESS_END, e);
|
|
7844
|
+
_pos.press = false;
|
|
7845
|
+
_pos.moving = true;
|
|
7846
|
+
_this.trigger(EVENTS.TOUCH_MOVE, e);
|
|
7847
|
+
});
|
|
7639
7848
|
this._pos = {
|
|
7640
7849
|
moving: false,
|
|
7641
7850
|
start: false,
|
|
@@ -7643,11 +7852,11 @@ var __publicField = (obj, key, value) => {
|
|
|
7643
7852
|
y: 0
|
|
7644
7853
|
};
|
|
7645
7854
|
this.config = getDefaultConfig();
|
|
7646
|
-
Object.keys(
|
|
7647
|
-
_this.config[key] =
|
|
7855
|
+
Object.keys(_config).map(function(key) {
|
|
7856
|
+
_this.config[key] = _config[key];
|
|
7648
7857
|
});
|
|
7649
7858
|
this.root = dom;
|
|
7650
|
-
this.events =
|
|
7859
|
+
this.events = _config.eventType === "mouse" ? MOUSES : TOUCHS;
|
|
7651
7860
|
this.pressIntrvalId = null;
|
|
7652
7861
|
this.dbIntrvalId = null;
|
|
7653
7862
|
this.__handlers = {};
|
|
@@ -7656,10 +7865,6 @@ var __publicField = (obj, key, value) => {
|
|
|
7656
7865
|
_createClass(Touche2, [{
|
|
7657
7866
|
key: "_initEvent",
|
|
7658
7867
|
value: function _initEvent() {
|
|
7659
|
-
this.onTouchStart = this.onTouchStart.bind(this);
|
|
7660
|
-
this.onTouchMove = this.onTouchMove.bind(this);
|
|
7661
|
-
this.onTouchEnd = this.onTouchEnd.bind(this);
|
|
7662
|
-
this.onTouchCancel = this.onTouchCancel.bind(this);
|
|
7663
7868
|
this.root.addEventListener(this.events.start, this.onTouchStart);
|
|
7664
7869
|
}
|
|
7665
7870
|
}, {
|
|
@@ -7745,60 +7950,6 @@ var __publicField = (obj, key, value) => {
|
|
|
7745
7950
|
}
|
|
7746
7951
|
});
|
|
7747
7952
|
}
|
|
7748
|
-
}, {
|
|
7749
|
-
key: "onTouchStart",
|
|
7750
|
-
value: function onTouchStart(e) {
|
|
7751
|
-
var _pos = this._pos, root = this.root;
|
|
7752
|
-
var touch = getTouch(e.touches);
|
|
7753
|
-
_pos.x = touch ? parseInt(touch.pageX, 10) : e.pageX;
|
|
7754
|
-
_pos.y = touch ? parseInt(touch.pageX, 10) : e.pageX;
|
|
7755
|
-
_pos.start = true;
|
|
7756
|
-
this.__setPress(e);
|
|
7757
|
-
root.addEventListener(this.events.end, this.onTouchEnd);
|
|
7758
|
-
root.addEventListener(this.events.cancel, this.onTouchCancel);
|
|
7759
|
-
root.addEventListener(this.events.move, this.onTouchMove);
|
|
7760
|
-
this.trigger(EVENTS.TOUCH_START, e);
|
|
7761
|
-
}
|
|
7762
|
-
}, {
|
|
7763
|
-
key: "onTouchCancel",
|
|
7764
|
-
value: function onTouchCancel(e) {
|
|
7765
|
-
this.onTouchEnd(e);
|
|
7766
|
-
}
|
|
7767
|
-
}, {
|
|
7768
|
-
key: "onTouchEnd",
|
|
7769
|
-
value: function onTouchEnd(e) {
|
|
7770
|
-
var _pos = this._pos, root = this.root;
|
|
7771
|
-
this.__clearPress();
|
|
7772
|
-
root.removeEventListener(this.events.cancel, this.onTouchCancel);
|
|
7773
|
-
root.removeEventListener(this.events.end, this.onTouchEnd);
|
|
7774
|
-
root.removeEventListener(this.events.move, this.onTouchMove);
|
|
7775
|
-
e.moving = _pos.moving;
|
|
7776
|
-
e.press = _pos.press;
|
|
7777
|
-
_pos.press && this.trigger(EVENTS.PRESS_END, e);
|
|
7778
|
-
this.trigger(EVENTS.TOUCH_END, e);
|
|
7779
|
-
!_pos.press && !_pos.moving && this.__setDb(e);
|
|
7780
|
-
_pos.press = false;
|
|
7781
|
-
_pos.start = false;
|
|
7782
|
-
_pos.moving = false;
|
|
7783
|
-
}
|
|
7784
|
-
}, {
|
|
7785
|
-
key: "onTouchMove",
|
|
7786
|
-
value: function onTouchMove(e) {
|
|
7787
|
-
var _pos = this._pos, config = this.config;
|
|
7788
|
-
var touch = getTouch(e.touches);
|
|
7789
|
-
var x = touch ? parseInt(touch.pageX, 10) : e.pageX;
|
|
7790
|
-
var y = touch ? parseInt(touch.pageY, 10) : e.pageX;
|
|
7791
|
-
var diffx = x - _pos.x;
|
|
7792
|
-
var diffy = y - _pos.y;
|
|
7793
|
-
if (Math.abs(diffy) < config.miniStep && Math.abs(diffx) < config.miniStep) {
|
|
7794
|
-
return;
|
|
7795
|
-
}
|
|
7796
|
-
this.__clearPress();
|
|
7797
|
-
_pos.press && this.trigger(EVENTS.PRESS_END, e);
|
|
7798
|
-
_pos.press = false;
|
|
7799
|
-
_pos.moving = true;
|
|
7800
|
-
this.trigger(EVENTS.TOUCH_MOVE, e);
|
|
7801
|
-
}
|
|
7802
7953
|
}, {
|
|
7803
7954
|
key: "destroy",
|
|
7804
7955
|
value: function destroy() {
|
|
@@ -7808,8 +7959,8 @@ var __publicField = (obj, key, value) => {
|
|
|
7808
7959
|
touchmove: "onTouchMove",
|
|
7809
7960
|
touchstart: "onTouchStart"
|
|
7810
7961
|
};
|
|
7811
|
-
Object.keys(map).
|
|
7812
|
-
_this4.root.removeEventListener(
|
|
7962
|
+
Object.keys(map).forEach(function(key) {
|
|
7963
|
+
_this4.root.removeEventListener(key, _this4[map[key]]);
|
|
7813
7964
|
});
|
|
7814
7965
|
}
|
|
7815
7966
|
}]);
|
|
@@ -8460,38 +8611,61 @@ var __publicField = (obj, key, value) => {
|
|
|
8460
8611
|
}
|
|
8461
8612
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
8462
8613
|
_defineProperty(_assertThisInitialized(_this), "onBodyKeyDown", function(event) {
|
|
8463
|
-
|
|
8464
|
-
if (!_this.player || !_this.player.isUserActive && !_this.config.isIgnoreUserActive) {
|
|
8614
|
+
if (!_this.player) {
|
|
8465
8615
|
return;
|
|
8466
8616
|
}
|
|
8467
|
-
|
|
8617
|
+
var e = event || window.event;
|
|
8618
|
+
var keyCode = e.keyCode;
|
|
8619
|
+
var _assertThisInitialize = _assertThisInitialized(_this), _keyState = _assertThisInitialize._keyState, player = _assertThisInitialize.player;
|
|
8620
|
+
var _this$config = _this.config, disable = _this$config.disable, disableBodyTrigger = _this$config.disableBodyTrigger, isIgnoreUserActive = _this$config.isIgnoreUserActive;
|
|
8621
|
+
if (disable || disableBodyTrigger || !player.isUserActive && !isIgnoreUserActive || isDisableTag(e.target) || !_this.checkIsVisible() || e.metaKey || e.altKey || e.ctrlKey) {
|
|
8622
|
+
_keyState.isBodyKeyDown = false;
|
|
8468
8623
|
return;
|
|
8469
8624
|
}
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8625
|
+
if (!event.repeat && !_keyState.isKeyDown) {
|
|
8626
|
+
if ((e.target === document.body || _this.config.isGlobalTrigger && !isDisableTag(e.target)) && _this.checkCode(keyCode, true)) {
|
|
8627
|
+
_keyState.isBodyKeyDown = true;
|
|
8628
|
+
}
|
|
8629
|
+
document.addEventListener("keyup", _this.onBodyKeyUp);
|
|
8475
8630
|
}
|
|
8476
|
-
|
|
8631
|
+
_keyState.isBodyKeyDown && _this.handleKeyDown(e);
|
|
8477
8632
|
});
|
|
8478
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
8479
|
-
|
|
8480
|
-
if (_this.config.disable || _this.config.disableRootTrigger || e.metaKey || e.altKey || e.ctrlKey) {
|
|
8633
|
+
_defineProperty(_assertThisInitialized(_this), "onBodyKeyUp", function(event) {
|
|
8634
|
+
if (!_this.player) {
|
|
8481
8635
|
return;
|
|
8482
8636
|
}
|
|
8483
|
-
|
|
8637
|
+
document.removeEventListener("keyup", _this.onBodyKeyUp);
|
|
8638
|
+
_this.handleKeyUp(event);
|
|
8639
|
+
});
|
|
8640
|
+
_defineProperty(_assertThisInitialized(_this), "onKeydown", function(event) {
|
|
8641
|
+
if (!_this.player) {
|
|
8484
8642
|
return;
|
|
8485
8643
|
}
|
|
8486
|
-
|
|
8644
|
+
var e = event || window.event;
|
|
8645
|
+
var _assertThisInitialize2 = _assertThisInitialized(_this), _keyState = _assertThisInitialize2._keyState;
|
|
8646
|
+
if (!e.repeat) {
|
|
8647
|
+
if (_this.config.disable || _this.config.disableRootTrigger || e.metaKey || e.altKey || e.ctrlKey) {
|
|
8648
|
+
return;
|
|
8649
|
+
}
|
|
8650
|
+
if (!_this.player.isUserActive && !_this.config.isIgnoreUserActive) {
|
|
8651
|
+
return;
|
|
8652
|
+
}
|
|
8653
|
+
if (e && (e.keyCode === 37 || _this.checkCode(e.keyCode)) && (e.target === _this.player.root || e.target === _this.player.video || e.target === _this.player.controls.el)) {
|
|
8654
|
+
_keyState.isKeyDown = true;
|
|
8655
|
+
}
|
|
8656
|
+
_this.player.root.addEventListener("keyup", _this.onKeyup);
|
|
8657
|
+
}
|
|
8658
|
+
if (!_keyState.isKeyDown) {
|
|
8487
8659
|
return;
|
|
8488
8660
|
}
|
|
8489
|
-
|
|
8490
|
-
|
|
8491
|
-
|
|
8492
|
-
|
|
8661
|
+
_this.handleKeyDown(e);
|
|
8662
|
+
});
|
|
8663
|
+
_defineProperty(_assertThisInitialized(_this), "onKeyup", function(event) {
|
|
8664
|
+
if (!_this.player) {
|
|
8665
|
+
return;
|
|
8493
8666
|
}
|
|
8494
|
-
_this.
|
|
8667
|
+
_this.player.root.removeEventListener("keyup", _this.onKeyup);
|
|
8668
|
+
_this.handleKeyUp(event);
|
|
8495
8669
|
});
|
|
8496
8670
|
return _this;
|
|
8497
8671
|
}
|
|
@@ -8505,7 +8679,7 @@ var __publicField = (obj, key, value) => {
|
|
|
8505
8679
|
if (!_this2.keyCodeMap[key]) {
|
|
8506
8680
|
_this2.keyCodeMap[key] = extendkeyCodeMap[key];
|
|
8507
8681
|
} else {
|
|
8508
|
-
["keyCode", "action", "disable", "isBodyTarget"].map(function(key1) {
|
|
8682
|
+
["keyCode", "action", "disable", "pressAction", "disablePress", "isBodyTarget"].map(function(key1) {
|
|
8509
8683
|
extendkeyCodeMap[key][key1] && (_this2.keyCodeMap[key][key1] = extendkeyCodeMap[key][key1]);
|
|
8510
8684
|
});
|
|
8511
8685
|
}
|
|
@@ -8525,37 +8699,51 @@ var __publicField = (obj, key, value) => {
|
|
|
8525
8699
|
keyCode: 32,
|
|
8526
8700
|
action: "playPause",
|
|
8527
8701
|
disable: false,
|
|
8702
|
+
disablePress: false,
|
|
8528
8703
|
noBodyTarget: false
|
|
8529
8704
|
},
|
|
8530
8705
|
up: {
|
|
8531
8706
|
keyCode: 38,
|
|
8532
8707
|
action: "upVolume",
|
|
8533
8708
|
disable: false,
|
|
8709
|
+
disablePress: false,
|
|
8534
8710
|
noBodyTarget: true
|
|
8535
8711
|
},
|
|
8536
8712
|
down: {
|
|
8537
8713
|
keyCode: 40,
|
|
8538
8714
|
action: "downVolume",
|
|
8539
8715
|
disable: false,
|
|
8716
|
+
disablePress: false,
|
|
8540
8717
|
noBodyTarget: true
|
|
8541
8718
|
},
|
|
8542
8719
|
left: {
|
|
8543
8720
|
keyCode: 37,
|
|
8544
8721
|
action: "seekBack",
|
|
8722
|
+
disablePress: false,
|
|
8545
8723
|
disable: false
|
|
8546
8724
|
},
|
|
8547
8725
|
right: {
|
|
8548
8726
|
keyCode: 39,
|
|
8549
8727
|
action: "seek",
|
|
8728
|
+
pressAction: "changePlaybackRate",
|
|
8729
|
+
disablePress: false,
|
|
8550
8730
|
disable: false
|
|
8551
8731
|
},
|
|
8552
8732
|
esc: {
|
|
8553
8733
|
keyCode: 27,
|
|
8554
8734
|
action: "exitFullscreen",
|
|
8735
|
+
disablePress: true,
|
|
8555
8736
|
disable: false
|
|
8556
8737
|
}
|
|
8557
8738
|
};
|
|
8558
8739
|
this.mergekeyCodeMap();
|
|
8740
|
+
this._keyState = {
|
|
8741
|
+
isKeyDown: false,
|
|
8742
|
+
isBodyKeyDown: false,
|
|
8743
|
+
isPress: false,
|
|
8744
|
+
tt: 0,
|
|
8745
|
+
playbackRate: 0
|
|
8746
|
+
};
|
|
8559
8747
|
this.player.root.addEventListener("keydown", this.onKeydown);
|
|
8560
8748
|
document.addEventListener("keydown", this.onBodyKeyDown);
|
|
8561
8749
|
}
|
|
@@ -8589,6 +8777,9 @@ var __publicField = (obj, key, value) => {
|
|
|
8589
8777
|
key: "downVolume",
|
|
8590
8778
|
value: function downVolume(event) {
|
|
8591
8779
|
var player = this.player;
|
|
8780
|
+
if (player.volume <= 0) {
|
|
8781
|
+
return;
|
|
8782
|
+
}
|
|
8592
8783
|
var val = parseFloat((player.volume - 0.1).toFixed(1));
|
|
8593
8784
|
var props = {
|
|
8594
8785
|
volume: {
|
|
@@ -8609,6 +8800,9 @@ var __publicField = (obj, key, value) => {
|
|
|
8609
8800
|
key: "upVolume",
|
|
8610
8801
|
value: function upVolume(event) {
|
|
8611
8802
|
var player = this.player;
|
|
8803
|
+
if (player.volume >= 1) {
|
|
8804
|
+
return;
|
|
8805
|
+
}
|
|
8612
8806
|
var val = parseFloat((player.volume + 0.1).toFixed(1));
|
|
8613
8807
|
var props = {
|
|
8614
8808
|
volume: {
|
|
@@ -8628,42 +8822,57 @@ var __publicField = (obj, key, value) => {
|
|
|
8628
8822
|
}, {
|
|
8629
8823
|
key: "seek",
|
|
8630
8824
|
value: function seek(event) {
|
|
8631
|
-
var _this$player = this.player, currentTime = _this$player.currentTime, duration = _this$player.duration;
|
|
8632
|
-
var _time = currentTime;
|
|
8633
|
-
|
|
8634
|
-
|
|
8825
|
+
var _this$player = this.player, currentTime = _this$player.currentTime, offsetCurrentTime = _this$player.offsetCurrentTime, duration = _this$player.duration, offsetDuration = _this$player.offsetDuration, timeSegments = _this$player.timeSegments;
|
|
8826
|
+
var _time = offsetCurrentTime > -1 ? offsetCurrentTime : currentTime;
|
|
8827
|
+
var _duration = offsetDuration || duration;
|
|
8828
|
+
var _step = event.repeat && this.seekStep >= 4 ? parseInt(this.seekStep / 2, 10) : this.seekStep;
|
|
8829
|
+
if (_time + _step <= _duration) {
|
|
8830
|
+
_time = _time + _step;
|
|
8635
8831
|
} else {
|
|
8636
|
-
_time =
|
|
8832
|
+
_time = _duration;
|
|
8637
8833
|
}
|
|
8834
|
+
var _seekTime = util.getCurrentTimeByOffset(_time, timeSegments);
|
|
8638
8835
|
var props = {
|
|
8639
8836
|
currentTime: {
|
|
8640
8837
|
from: currentTime,
|
|
8641
|
-
to:
|
|
8838
|
+
to: _seekTime
|
|
8642
8839
|
}
|
|
8643
8840
|
};
|
|
8644
8841
|
this.emitUserAction(event, "seek", {
|
|
8645
8842
|
props
|
|
8646
8843
|
});
|
|
8647
|
-
this.player.currentTime =
|
|
8844
|
+
this.player.currentTime = _seekTime;
|
|
8648
8845
|
}
|
|
8649
8846
|
}, {
|
|
8650
8847
|
key: "seekBack",
|
|
8651
8848
|
value: function seekBack(event) {
|
|
8652
|
-
var
|
|
8653
|
-
var
|
|
8654
|
-
|
|
8655
|
-
|
|
8656
|
-
|
|
8849
|
+
var _this$player2 = this.player, currentTime = _this$player2.currentTime, offsetCurrentTime = _this$player2.offsetCurrentTime, timeSegments = _this$player2.timeSegments;
|
|
8850
|
+
var _step = event.repeat ? parseInt(this.seekStep / 2, 10) : this.seekStep;
|
|
8851
|
+
var _time = offsetCurrentTime > -1 ? offsetCurrentTime : currentTime;
|
|
8852
|
+
var _seekTime = _time - _step;
|
|
8853
|
+
if (_seekTime < 0) {
|
|
8854
|
+
_seekTime = 0;
|
|
8855
|
+
}
|
|
8856
|
+
_seekTime = util.getCurrentTimeByOffset(_seekTime, timeSegments);
|
|
8657
8857
|
var props = {
|
|
8658
8858
|
currentTime: {
|
|
8659
8859
|
from: currentTime,
|
|
8660
|
-
to:
|
|
8860
|
+
to: _seekTime
|
|
8661
8861
|
}
|
|
8662
8862
|
};
|
|
8663
8863
|
this.emitUserAction(event, "seek", {
|
|
8664
8864
|
props
|
|
8665
8865
|
});
|
|
8666
|
-
this.player.currentTime =
|
|
8866
|
+
this.player.currentTime = _seekTime;
|
|
8867
|
+
}
|
|
8868
|
+
}, {
|
|
8869
|
+
key: "changePlaybackRate",
|
|
8870
|
+
value: function changePlaybackRate(event) {
|
|
8871
|
+
var _keyState = this._keyState, config = this.config, player = this.player;
|
|
8872
|
+
if (_keyState.playbackRate === 0) {
|
|
8873
|
+
_keyState.playbackRate = player.playbackRate;
|
|
8874
|
+
player.playbackRate = config.playbackRate;
|
|
8875
|
+
}
|
|
8667
8876
|
}
|
|
8668
8877
|
}, {
|
|
8669
8878
|
key: "playPause",
|
|
@@ -8701,32 +8910,66 @@ var __publicField = (obj, key, value) => {
|
|
|
8701
8910
|
player.exitCssFullscreen();
|
|
8702
8911
|
}
|
|
8703
8912
|
}
|
|
8913
|
+
}, {
|
|
8914
|
+
key: "handleKeyDown",
|
|
8915
|
+
value: function handleKeyDown(e) {
|
|
8916
|
+
var _keyState = this._keyState;
|
|
8917
|
+
if (e.repeat) {
|
|
8918
|
+
_keyState.isPress = true;
|
|
8919
|
+
var _t = Date.now();
|
|
8920
|
+
if (_t - _keyState.tt < 200) {
|
|
8921
|
+
return;
|
|
8922
|
+
}
|
|
8923
|
+
_keyState.tt = _t;
|
|
8924
|
+
}
|
|
8925
|
+
preventDefault(e);
|
|
8926
|
+
this.handleKeyCode(e.keyCode, e, _keyState.isPress);
|
|
8927
|
+
}
|
|
8928
|
+
}, {
|
|
8929
|
+
key: "handleKeyUp",
|
|
8930
|
+
value: function handleKeyUp(e) {
|
|
8931
|
+
var _keyState = this._keyState;
|
|
8932
|
+
if (_keyState.playbackRate > 0) {
|
|
8933
|
+
this.player.playbackRate = _keyState.playbackRate;
|
|
8934
|
+
_keyState.playbackRate = 0;
|
|
8935
|
+
}
|
|
8936
|
+
_keyState.isKeyDown = false;
|
|
8937
|
+
_keyState.isPress = false;
|
|
8938
|
+
_keyState.tt = 0;
|
|
8939
|
+
}
|
|
8704
8940
|
}, {
|
|
8705
8941
|
key: "handleKeyCode",
|
|
8706
|
-
value: function handleKeyCode(curKeyCode, event) {
|
|
8707
|
-
var
|
|
8708
|
-
|
|
8709
|
-
var
|
|
8710
|
-
if (keyCode === curKeyCode
|
|
8711
|
-
if (
|
|
8712
|
-
action
|
|
8713
|
-
|
|
8714
|
-
|
|
8715
|
-
|
|
8942
|
+
value: function handleKeyCode(curKeyCode, event, isPress) {
|
|
8943
|
+
var arr = Object.keys(this.keyCodeMap);
|
|
8944
|
+
for (var i = 0; i < arr.length; i++) {
|
|
8945
|
+
var _this$keyCodeMap$arr$ = this.keyCodeMap[arr[i]], action = _this$keyCodeMap$arr$.action, keyCode = _this$keyCodeMap$arr$.keyCode, disable = _this$keyCodeMap$arr$.disable, pressAction = _this$keyCodeMap$arr$.pressAction, disablePress = _this$keyCodeMap$arr$.disablePress;
|
|
8946
|
+
if (keyCode === curKeyCode) {
|
|
8947
|
+
if (!disable && !(isPress && disablePress)) {
|
|
8948
|
+
var _action = !isPress ? action : pressAction || action;
|
|
8949
|
+
if (typeof _action === "function") {
|
|
8950
|
+
action(event, this.player, isPress);
|
|
8951
|
+
} else if (typeof _action === "string") {
|
|
8952
|
+
if (typeof this[_action] === "function") {
|
|
8953
|
+
this[_action](event, this.player, isPress);
|
|
8954
|
+
}
|
|
8716
8955
|
}
|
|
8956
|
+
this.emit(SHORTCUT, _objectSpread2({
|
|
8957
|
+
key: arr[i],
|
|
8958
|
+
target: event.target,
|
|
8959
|
+
isPress
|
|
8960
|
+
}, this.keyCodeMap[arr[i]]));
|
|
8717
8961
|
}
|
|
8718
|
-
|
|
8719
|
-
key,
|
|
8720
|
-
target: event.target
|
|
8721
|
-
}, _this4.keyCodeMap[key]));
|
|
8962
|
+
break;
|
|
8722
8963
|
}
|
|
8723
|
-
}
|
|
8964
|
+
}
|
|
8724
8965
|
}
|
|
8725
8966
|
}, {
|
|
8726
8967
|
key: "destroy",
|
|
8727
8968
|
value: function destroy() {
|
|
8728
8969
|
this.player.root.removeEventListener("keydown", this.onKeydown);
|
|
8729
8970
|
document.removeEventListener("keydown", this.onBodyKeyDown);
|
|
8971
|
+
this.player.root.removeEventListener("keyup", this.onKeyup);
|
|
8972
|
+
document.removeEventListener("keyup", this.onBodyKeyUp);
|
|
8730
8973
|
}
|
|
8731
8974
|
}, {
|
|
8732
8975
|
key: "disable",
|
|
@@ -8748,12 +8991,13 @@ var __publicField = (obj, key, value) => {
|
|
|
8748
8991
|
get: function get() {
|
|
8749
8992
|
return {
|
|
8750
8993
|
seekStep: 10,
|
|
8751
|
-
checkVisible:
|
|
8994
|
+
checkVisible: false,
|
|
8752
8995
|
disableBodyTrigger: false,
|
|
8753
8996
|
disableRootTrigger: false,
|
|
8754
8997
|
isGlobalTrigger: false,
|
|
8755
8998
|
keyCodeMap: {},
|
|
8756
8999
|
disable: false,
|
|
9000
|
+
playbackRate: 2,
|
|
8757
9001
|
isIgnoreUserActive: false
|
|
8758
9002
|
};
|
|
8759
9003
|
}
|
|
@@ -10046,6 +10290,9 @@ var __publicField = (obj, key, value) => {
|
|
|
10046
10290
|
get url() {
|
|
10047
10291
|
return this._currentUrlRef.url;
|
|
10048
10292
|
}
|
|
10293
|
+
set url(url) {
|
|
10294
|
+
this._currentUrlRef.url = url;
|
|
10295
|
+
}
|
|
10049
10296
|
next() {
|
|
10050
10297
|
const next = this._currentUrlRef.next;
|
|
10051
10298
|
/* istanbul ignore next -- @preserve */
|
|
@@ -10123,7 +10370,6 @@ var __publicField = (obj, key, value) => {
|
|
|
10123
10370
|
__publicField(this, "defaultSource");
|
|
10124
10371
|
__publicField(this, "defaultDefinition");
|
|
10125
10372
|
__publicField(this, "maxFallbackRound");
|
|
10126
|
-
__publicField(this, "_prepareList", []);
|
|
10127
10373
|
__publicField(this, "_currentDefinition");
|
|
10128
10374
|
__publicField(this, "_sources");
|
|
10129
10375
|
__publicField(this, "_fallbackCount", 0);
|
|
@@ -10158,6 +10404,11 @@ var __publicField = (obj, key, value) => {
|
|
|
10158
10404
|
var _a;
|
|
10159
10405
|
return (_a = this.definition) == null ? void 0 : _a.url;
|
|
10160
10406
|
}
|
|
10407
|
+
set url(url) {
|
|
10408
|
+
if (this.definition) {
|
|
10409
|
+
this.definition.url = url;
|
|
10410
|
+
}
|
|
10411
|
+
}
|
|
10161
10412
|
/**
|
|
10162
10413
|
* 以给定的参数搜索源和对应清晰度。`source` 和 `definition`
|
|
10163
10414
|
* 都是可选的,当未指定时,使用当前的 {@link SourceManager.source}
|
|
@@ -10227,14 +10478,6 @@ var __publicField = (obj, key, value) => {
|
|
|
10227
10478
|
this.resetFallback();
|
|
10228
10479
|
return this;
|
|
10229
10480
|
}
|
|
10230
|
-
registerPrepare(prepare) {
|
|
10231
|
-
this._prepareList.push(prepare);
|
|
10232
|
-
}
|
|
10233
|
-
async prepare(url) {
|
|
10234
|
-
for (const prepare of this._prepareList) {
|
|
10235
|
-
await prepare(url);
|
|
10236
|
-
}
|
|
10237
|
-
}
|
|
10238
10481
|
resetFallback() {
|
|
10239
10482
|
this._fallbackCount = 0;
|
|
10240
10483
|
}
|
|
@@ -10676,12 +10919,13 @@ var __publicField = (obj, key, value) => {
|
|
|
10676
10919
|
}
|
|
10677
10920
|
}
|
|
10678
10921
|
var optionsIcon = "";
|
|
10679
|
-
|
|
10680
|
-
Middle
|
|
10681
|
-
Bottom
|
|
10682
|
-
Fullscreen
|
|
10683
|
-
Inner
|
|
10684
|
-
|
|
10922
|
+
var ListType = /* @__PURE__ */ ((ListType2) => {
|
|
10923
|
+
ListType2["Middle"] = "middle";
|
|
10924
|
+
ListType2["Bottom"] = "bottom";
|
|
10925
|
+
ListType2["Fullscreen"] = "fullscreen";
|
|
10926
|
+
ListType2["Inner"] = "inner";
|
|
10927
|
+
return ListType2;
|
|
10928
|
+
})(ListType || {});
|
|
10685
10929
|
var RenderType = /* @__PURE__ */ ((RenderType2) => {
|
|
10686
10930
|
RenderType2["Icon"] = "Icon";
|
|
10687
10931
|
RenderType2["Text"] = "Text";
|
|
@@ -10689,20 +10933,26 @@ var __publicField = (obj, key, value) => {
|
|
|
10689
10933
|
})(RenderType || {});
|
|
10690
10934
|
const isMobile$1 = sniffer.device === "mobile";
|
|
10691
10935
|
const MOBILE_LIST_TYPES = [
|
|
10692
|
-
|
|
10693
|
-
|
|
10694
|
-
|
|
10936
|
+
"bottom",
|
|
10937
|
+
"fullscreen",
|
|
10938
|
+
"inner"
|
|
10939
|
+
/* Inner */
|
|
10940
|
+
];
|
|
10941
|
+
const PC_LIST_TYPES = [
|
|
10942
|
+
"middle"
|
|
10943
|
+
/* Middle */
|
|
10695
10944
|
];
|
|
10696
|
-
const PC_LIST_TYPES = [ListType.Middle];
|
|
10697
10945
|
const MODAL_TYPES = [
|
|
10698
|
-
|
|
10699
|
-
|
|
10700
|
-
|
|
10946
|
+
"bottom",
|
|
10947
|
+
"inner",
|
|
10948
|
+
"fullscreen"
|
|
10949
|
+
/* Fullscreen */
|
|
10701
10950
|
];
|
|
10702
10951
|
const CUSTOM_TYPES = [
|
|
10703
|
-
|
|
10704
|
-
|
|
10705
|
-
|
|
10952
|
+
"bottom",
|
|
10953
|
+
"inner",
|
|
10954
|
+
"fullscreen"
|
|
10955
|
+
/* Fullscreen */
|
|
10706
10956
|
];
|
|
10707
10957
|
class OptionsIcon extends Plugin {
|
|
10708
10958
|
constructor(args) {
|
|
@@ -10740,7 +10990,7 @@ var __publicField = (obj, key, value) => {
|
|
|
10740
10990
|
// 默认手机端在“右上角”,pc端在控制栏右侧
|
|
10741
10991
|
position: isMobile$1 ? POSITIONS.ROOT_TOP_RIGHT : POSITIONS.CONTROLS_RIGHT,
|
|
10742
10992
|
// 默认手机端列表展示底部,pc端在控制栏默认
|
|
10743
|
-
listType: isMobile$1 ?
|
|
10993
|
+
listType: isMobile$1 ? "bottom" : "middle",
|
|
10744
10994
|
index: 100,
|
|
10745
10995
|
list: [],
|
|
10746
10996
|
listStyle: {},
|
|
@@ -10922,10 +11172,10 @@ var __publicField = (obj, key, value) => {
|
|
|
10922
11172
|
listType = this.player.config.listType;
|
|
10923
11173
|
}
|
|
10924
11174
|
if (!isMobile$1 && (!listType || !MOBILE_LIST_TYPES.includes(listType))) {
|
|
10925
|
-
listType =
|
|
11175
|
+
listType = "bottom";
|
|
10926
11176
|
}
|
|
10927
11177
|
if (!isMobile$1 && (!listType || !PC_LIST_TYPES.includes(listType))) {
|
|
10928
|
-
listType =
|
|
11178
|
+
listType = "middle";
|
|
10929
11179
|
}
|
|
10930
11180
|
return listType;
|
|
10931
11181
|
}
|
|
@@ -11818,9 +12068,7 @@ var __publicField = (obj, key, value) => {
|
|
|
11818
12068
|
toastPlugin.remove(this._toastId);
|
|
11819
12069
|
}
|
|
11820
12070
|
this._toastId = toastPlugin.toast(
|
|
11821
|
-
`${i18nManager.getText("DEFINITION_SWITCHING")} ${
|
|
11822
|
-
definition.text
|
|
11823
|
-
)) ?? definition.definition} ...`,
|
|
12071
|
+
`${i18nManager.getText("DEFINITION_SWITCHING")} ${definition.showText ?? definition.definition} ...`,
|
|
11824
12072
|
{
|
|
11825
12073
|
duration: 2e3,
|
|
11826
12074
|
closable: true
|
|
@@ -12627,11 +12875,6 @@ var __publicField = (obj, key, value) => {
|
|
|
12627
12875
|
}
|
|
12628
12876
|
}
|
|
12629
12877
|
var veplayerBase = "";
|
|
12630
|
-
var Codec = /* @__PURE__ */ ((Codec2) => {
|
|
12631
|
-
Codec2["H265"] = "h265";
|
|
12632
|
-
Codec2["H264"] = "h264";
|
|
12633
|
-
return Codec2;
|
|
12634
|
-
})(Codec || {});
|
|
12635
12878
|
const { POSITIONS: XGPosition } = Plugin;
|
|
12636
12879
|
const POSITIONS = {
|
|
12637
12880
|
...XGPosition,
|
|
@@ -12641,7 +12884,7 @@ var __publicField = (obj, key, value) => {
|
|
|
12641
12884
|
id: "veplayer",
|
|
12642
12885
|
width: "100%",
|
|
12643
12886
|
height: "100%",
|
|
12644
|
-
decodeType:
|
|
12887
|
+
decodeType: DecodeType.Hardware,
|
|
12645
12888
|
fullscreen: {
|
|
12646
12889
|
useCssFullscreen: false
|
|
12647
12890
|
}
|
|
@@ -12669,6 +12912,9 @@ var __publicField = (obj, key, value) => {
|
|
|
12669
12912
|
return xgOptions;
|
|
12670
12913
|
};
|
|
12671
12914
|
class VePlayerBase {
|
|
12915
|
+
/**
|
|
12916
|
+
* @hidden
|
|
12917
|
+
*/
|
|
12672
12918
|
constructor(options = {}) {
|
|
12673
12919
|
__publicField(this, "_player");
|
|
12674
12920
|
__publicField(this, "_sourceManager");
|
|
@@ -12716,85 +12962,172 @@ var __publicField = (obj, key, value) => {
|
|
|
12716
12962
|
veplayer: this
|
|
12717
12963
|
});
|
|
12718
12964
|
this.emit(Events.PLAYER_CREATE_FINISH, this._player);
|
|
12719
|
-
this._sourceManager.registerPrepare((url) => this.prepare(url));
|
|
12720
12965
|
this._errorCallback = (err) => this._handleFallback(err);
|
|
12721
12966
|
this._player.on(ERROR, this._errorCallback);
|
|
12722
12967
|
}
|
|
12968
|
+
/**
|
|
12969
|
+
* @brief 获取视频的就绪状态,其状态枚举值、枚举名称和说明如下:
|
|
12970
|
+
* - `0`:HAVE_NOTHING,没有关于媒体资源的可用信息
|
|
12971
|
+
* - `1`:HAVE_METADATA,已检索到足够多的媒体资源来初始化元数据, 快进/快退不会引发异常
|
|
12972
|
+
* - `2`:HAVE_CURRENT_DATA,当前播放位置的数据可用,但不足以播放下一帧
|
|
12973
|
+
* - `3`:HAVE_FUTURE_DATA,当前播放位置以及未来至少一小段时间的数据是可用的(至少有两帧以上的数据)
|
|
12974
|
+
* - `4`:HAVE_ENOUGH_DATA,有足够的数据可用,并且下载速率足够,媒体可以不间断地播放到最后
|
|
12975
|
+
*/
|
|
12723
12976
|
get readyState() {
|
|
12724
12977
|
return this._player.readyState;
|
|
12725
12978
|
}
|
|
12979
|
+
/**
|
|
12980
|
+
* @brief 获取当前已缓冲的时间范围。
|
|
12981
|
+
*/
|
|
12726
12982
|
get buffered() {
|
|
12727
12983
|
return this._player.buffered;
|
|
12728
12984
|
}
|
|
12985
|
+
/**
|
|
12986
|
+
* @brief 获取已经播放的音频/视频的时间范围。
|
|
12987
|
+
*/
|
|
12729
12988
|
get played() {
|
|
12730
12989
|
return this._player.played;
|
|
12731
12990
|
}
|
|
12991
|
+
/**
|
|
12992
|
+
* @brief 设置/获取视频当前的播放时间, 单位为 s。
|
|
12993
|
+
*/
|
|
12732
12994
|
get cumulateTime() {
|
|
12733
12995
|
return this._player.cumulateTime;
|
|
12734
12996
|
}
|
|
12997
|
+
/**
|
|
12998
|
+
* @brief 获取是否处于焦点状态,处于焦点状态会显示控制栏。
|
|
12999
|
+
*/
|
|
12735
13000
|
get isFocused() {
|
|
12736
13001
|
return this._player.isActive;
|
|
12737
13002
|
}
|
|
13003
|
+
/**
|
|
13004
|
+
* @brief 获取播放器是否处于全屏状态。
|
|
13005
|
+
*/
|
|
12738
13006
|
get isFullscreen() {
|
|
12739
13007
|
return this._player.isFullscreen;
|
|
12740
13008
|
}
|
|
13009
|
+
/**
|
|
13010
|
+
* @brief 获取播放器是否处于网页全屏状态。
|
|
13011
|
+
*/
|
|
12741
13012
|
get isCssFullscreen() {
|
|
12742
13013
|
return this._player.isCssfullScreen;
|
|
12743
13014
|
}
|
|
13015
|
+
/**
|
|
13016
|
+
* @brief 获取视频的网络状态,其状态枚举值、枚举名称和说明如下:
|
|
13017
|
+
* - `0`:NETWORK_EMPTY,目前还没有数据,readyState 的值是 HAVE_NOTHING
|
|
13018
|
+
* - `1`:NETWORK_IDLE,HTMLMediaElement 处于活动状态并已选择资源,但未使用网络
|
|
13019
|
+
* - `2`:NETWORK_LOADING,浏览器正在下载 HTMLMediaElement 数据
|
|
13020
|
+
* - `3`:NETWORK_NO_SOURCE,未找到 HTMLMediaElement src。
|
|
13021
|
+
*/
|
|
12744
13022
|
get networkState() {
|
|
12745
13023
|
return this._player.networkState;
|
|
12746
13024
|
}
|
|
13025
|
+
/**
|
|
13026
|
+
* @brief 获取当前视频是否处于暂停状态。
|
|
13027
|
+
*/
|
|
12747
13028
|
get paused() {
|
|
12748
13029
|
return this._player.paused;
|
|
12749
13030
|
}
|
|
13031
|
+
/**
|
|
13032
|
+
* @brief 获取当前视频是否播放结束。
|
|
13033
|
+
*/
|
|
12750
13034
|
get ended() {
|
|
12751
13035
|
return this._player.ended;
|
|
12752
13036
|
}
|
|
13037
|
+
/**
|
|
13038
|
+
* @brief 获取播放器当前所处的状态,其状态枚举值、枚举名称和说明如下:
|
|
13039
|
+
* - `0`:ERROR,播放出现错误
|
|
13040
|
+
* - `1`:INITIAL,初始化
|
|
13041
|
+
* - `2`:READY,配置/事件/插件等均已经初始化/绑定/实例化完成
|
|
13042
|
+
* - `3`:ATTACHING,进入媒体对象挂载阶段
|
|
13043
|
+
* - `4`:ATTACHED,媒体对象已经挂载到了 DOM 中
|
|
13044
|
+
* - `5`:NOTALLOW,播放被阻止
|
|
13045
|
+
* - `6`:RUNNING,已经成功起播进入播放流程
|
|
13046
|
+
* - `7`:ENDED,播放结束
|
|
13047
|
+
* - `8`:DESTROYED,播放器实例处于已被销毁
|
|
13048
|
+
*/
|
|
12753
13049
|
get state() {
|
|
12754
13050
|
return this._player.state;
|
|
12755
13051
|
}
|
|
13052
|
+
/**
|
|
13053
|
+
* 获取当前播放视频的拉流地址。
|
|
13054
|
+
*/
|
|
12756
13055
|
get url() {
|
|
12757
13056
|
return this._player.config.url;
|
|
12758
13057
|
}
|
|
13058
|
+
/**
|
|
13059
|
+
* @brief 获取当播放视频的线路名称唯一标识(name)。
|
|
13060
|
+
*/
|
|
12759
13061
|
get source() {
|
|
12760
13062
|
var _a;
|
|
12761
13063
|
return (_a = this._sourceManager.source) == null ? void 0 : _a.name;
|
|
12762
13064
|
}
|
|
13065
|
+
/**
|
|
13066
|
+
* @brief 获取当前播放视频的清晰度唯一标识(definition)。
|
|
13067
|
+
*/
|
|
12763
13068
|
get definition() {
|
|
12764
13069
|
var _a;
|
|
12765
13070
|
return (_a = this._sourceManager.definition) == null ? void 0 : _a.definition;
|
|
12766
13071
|
}
|
|
13072
|
+
/**
|
|
13073
|
+
* @brief 获取和设置播放器的跨域配置信息,更多信息参考 [crossorigin](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin) 属性介绍。
|
|
13074
|
+
*/
|
|
12767
13075
|
get crossOrigin() {
|
|
12768
13076
|
return this._player.crossOrigin;
|
|
12769
13077
|
}
|
|
13078
|
+
/**
|
|
13079
|
+
* @brief 获取和设置播放器的跨域配置信息,更多信息参考 [crossorigin](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin) 属性介绍。
|
|
13080
|
+
*/
|
|
12770
13081
|
set crossOrigin(crossOrigin) {
|
|
12771
13082
|
this._player.crossOrigin = crossOrigin;
|
|
12772
13083
|
}
|
|
13084
|
+
/**
|
|
13085
|
+
* @brief 获取和设置视频的音量,取值范围为 [0,1]。
|
|
13086
|
+
*/
|
|
12773
13087
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
12774
13088
|
get volume() {
|
|
12775
13089
|
return this._player.volume;
|
|
12776
13090
|
}
|
|
13091
|
+
/**
|
|
13092
|
+
* @brief 获取和设置视频的音量,取值范围为 [0,1]。
|
|
13093
|
+
*/
|
|
12777
13094
|
set volume(volume) {
|
|
12778
13095
|
this._player.volume = volume;
|
|
12779
13096
|
}
|
|
13097
|
+
/**
|
|
13098
|
+
* @brief 获取和设置视频静音状态。
|
|
13099
|
+
* - `true`:静音
|
|
13100
|
+
* - `false`:非静音
|
|
13101
|
+
*/
|
|
12780
13102
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
12781
13103
|
get muted() {
|
|
12782
13104
|
return this._player.muted;
|
|
12783
13105
|
}
|
|
13106
|
+
/**
|
|
13107
|
+
* @brief 获取和设置视频静音状态。
|
|
13108
|
+
* - `true`:静音
|
|
13109
|
+
* - `false`:非静音
|
|
13110
|
+
*/
|
|
12784
13111
|
set muted(isMuted) {
|
|
12785
13112
|
this._player.muted = isMuted;
|
|
12786
13113
|
}
|
|
13114
|
+
/**
|
|
13115
|
+
* @brief 获取和设置当前语言。
|
|
13116
|
+
*/
|
|
12787
13117
|
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
12788
13118
|
get lang() {
|
|
12789
13119
|
return this._i18nManager.getLang();
|
|
12790
13120
|
}
|
|
13121
|
+
/**
|
|
13122
|
+
* @brief 获取和设置当前语言。
|
|
13123
|
+
*/
|
|
12791
13124
|
set lang(lang) {
|
|
12792
13125
|
var _a, _b;
|
|
12793
13126
|
if (this._player.lang === lang) {
|
|
12794
13127
|
return;
|
|
12795
13128
|
}
|
|
12796
13129
|
if (!VeI18n.isLangValid(lang)) {
|
|
12797
|
-
const langKeys = VeI18n.langKeys
|
|
13130
|
+
const langKeys = VeI18n.langKeys.join(",");
|
|
12798
13131
|
const message = {
|
|
12799
13132
|
en: `Sorry, we couldn't set the language to ${lang} because it's not currently supported. The list of supported languages includes ${langKeys}.`,
|
|
12800
13133
|
"zh-cn": `不支持当前设置的语言${lang}, 支持的语言有${langKeys}, 请重新设置`
|
|
@@ -12809,8 +13142,11 @@ var __publicField = (obj, key, value) => {
|
|
|
12809
13142
|
get _src() {
|
|
12810
13143
|
return this._player.currentSrc;
|
|
12811
13144
|
}
|
|
13145
|
+
/**
|
|
13146
|
+
* @hidden
|
|
13147
|
+
*/
|
|
12812
13148
|
static async create(options = {}, Constructor) {
|
|
12813
|
-
var _a;
|
|
13149
|
+
var _a, _b, _c;
|
|
12814
13150
|
const sourceManager = new SourceManager({
|
|
12815
13151
|
sources: Source.normalize({
|
|
12816
13152
|
url: options.url,
|
|
@@ -12822,18 +13158,28 @@ var __publicField = (obj, key, value) => {
|
|
|
12822
13158
|
defaultDefinition: options.defaultDefinition,
|
|
12823
13159
|
maxFallbackRound: options.maxFallbackRound
|
|
12824
13160
|
});
|
|
13161
|
+
const prepareResult = await ((_a = options == null ? void 0 : options.preparePlugins) == null ? void 0 : _a.call(
|
|
13162
|
+
options,
|
|
13163
|
+
sourceManager.url ?? ""
|
|
13164
|
+
));
|
|
13165
|
+
if ((_b = prepareResult == null ? void 0 : prepareResult.options) == null ? void 0 : _b.url) {
|
|
13166
|
+
sourceManager.url = (_c = prepareResult == null ? void 0 : prepareResult.options) == null ? void 0 : _c.url;
|
|
13167
|
+
}
|
|
12825
13168
|
options.url = sourceManager.url;
|
|
12826
|
-
const prepareResult = await ((_a = options == null ? void 0 : options.preparePlugins) == null ? void 0 : _a.call(options, options.url ?? ""));
|
|
12827
13169
|
return new (Constructor ?? VePlayerBase)({
|
|
12828
13170
|
...options,
|
|
12829
13171
|
prepareResult,
|
|
12830
13172
|
sourceManager
|
|
12831
13173
|
});
|
|
12832
13174
|
}
|
|
13175
|
+
/**
|
|
13176
|
+
* @brief 调用此方法切换拉流地址、线路、清晰度。
|
|
13177
|
+
* @param target 目标地址,可以是播放地址,也可以是线路和清晰度
|
|
13178
|
+
* @param options 更多配置信息
|
|
13179
|
+
*/
|
|
12833
13180
|
async switch(target, options) {
|
|
12834
13181
|
var _a, _b;
|
|
12835
13182
|
if (typeof target === "string" && this._sourceManager.sources.length === 1 && ((_b = (_a = this._sourceManager.sources) == null ? void 0 : _a[0].definitions) == null ? void 0 : _b.length) === 1) {
|
|
12836
|
-
this._sourceManager.updateSources(target);
|
|
12837
13183
|
await this._switchUrl(target);
|
|
12838
13184
|
return this._sourceManager.definition;
|
|
12839
13185
|
}
|
|
@@ -12846,12 +13192,22 @@ var __publicField = (obj, key, value) => {
|
|
|
12846
13192
|
await this._switch(targetDefinition);
|
|
12847
13193
|
return targetDefinition;
|
|
12848
13194
|
}
|
|
13195
|
+
/**
|
|
13196
|
+
* @brief 调用此方法更新拉流地址列表。
|
|
13197
|
+
* @param playlist 要更新的播放列表。
|
|
13198
|
+
* @param target 更新后默认播放的资源。
|
|
13199
|
+
*/
|
|
12849
13200
|
updatePlaylist(playlist, target) {
|
|
12850
13201
|
const sourceManager = this._sourceManager.updateSources(playlist, target);
|
|
12851
13202
|
return this._switch(sourceManager.definition);
|
|
12852
13203
|
}
|
|
12853
13204
|
// TODO: 等西瓜播放器完善错误码后增加函数重载以提供更好的类型
|
|
12854
|
-
|
|
13205
|
+
/**
|
|
13206
|
+
* @brief 调用此方法监听指定事件,事件处理函数只执行一次。
|
|
13207
|
+
* @param event 表示事件的名称。
|
|
13208
|
+
* @param callback 表示事件的名称。
|
|
13209
|
+
*/
|
|
13210
|
+
once(event, callback) {
|
|
12855
13211
|
var _a;
|
|
12856
13212
|
const { xgCallback, xgEventName } = this._transformEvent(event, callback);
|
|
12857
13213
|
if (xgCallback) {
|
|
@@ -12859,27 +13215,45 @@ var __publicField = (obj, key, value) => {
|
|
|
12859
13215
|
this._events[event] = /* @__PURE__ */ new Map();
|
|
12860
13216
|
}
|
|
12861
13217
|
this._events[event].set(callback, xgCallback);
|
|
12862
|
-
this._player.once(xgEventName, xgCallback
|
|
13218
|
+
this._player.once(xgEventName, xgCallback);
|
|
12863
13219
|
}
|
|
12864
13220
|
}
|
|
12865
|
-
|
|
13221
|
+
/**
|
|
13222
|
+
* @brief 调用此方法解绑或移除指定事件的事件监听。
|
|
13223
|
+
* @param event 表示事件的名称。
|
|
13224
|
+
* @param callback 表示事件的名称。
|
|
13225
|
+
*/
|
|
13226
|
+
off(event, callback) {
|
|
12866
13227
|
var _a;
|
|
12867
13228
|
const xgCallback = (_a = this._events[event]) == null ? void 0 : _a.get(callback);
|
|
12868
13229
|
const { xgEventName } = this._transformEvent(event);
|
|
12869
13230
|
if (xgCallback) {
|
|
12870
|
-
this._player.off(xgEventName, xgCallback
|
|
13231
|
+
this._player.off(xgEventName, xgCallback);
|
|
12871
13232
|
this._events[event].delete(callback);
|
|
12872
13233
|
}
|
|
12873
13234
|
}
|
|
12874
|
-
|
|
13235
|
+
/**
|
|
13236
|
+
* @brief 调用此方法触发指定事件。
|
|
13237
|
+
* @param event 表示事件的名称。
|
|
13238
|
+
* @param data 事件信息。
|
|
13239
|
+
*/
|
|
13240
|
+
emit(event, data) {
|
|
12875
13241
|
const { xgEventName } = this._transformEvent(event);
|
|
12876
|
-
this._player.emit(xgEventName, data
|
|
13242
|
+
this._player.emit(xgEventName, data);
|
|
12877
13243
|
}
|
|
13244
|
+
/**
|
|
13245
|
+
* @brief 调用此方法解绑或移除指定事件的所有事件监听。
|
|
13246
|
+
*/
|
|
12878
13247
|
offAll() {
|
|
12879
13248
|
this._events = {};
|
|
12880
13249
|
this._player.offAll();
|
|
12881
13250
|
}
|
|
12882
|
-
|
|
13251
|
+
/**
|
|
13252
|
+
* @brief 调用此方法监听指定事件。
|
|
13253
|
+
* @param event 事件。
|
|
13254
|
+
* @param callback 事件回调。
|
|
13255
|
+
*/
|
|
13256
|
+
on(event, callback) {
|
|
12883
13257
|
var _a;
|
|
12884
13258
|
const { xgCallback, xgEventName } = this._transformEvent(event, callback);
|
|
12885
13259
|
if (xgCallback) {
|
|
@@ -12887,56 +13261,105 @@ var __publicField = (obj, key, value) => {
|
|
|
12887
13261
|
this._events[event] = /* @__PURE__ */ new Map();
|
|
12888
13262
|
}
|
|
12889
13263
|
this._events[event].set(callback, xgCallback);
|
|
12890
|
-
this._player.on(xgEventName, xgCallback
|
|
13264
|
+
this._player.on(xgEventName, xgCallback);
|
|
12891
13265
|
}
|
|
12892
13266
|
}
|
|
13267
|
+
/**
|
|
13268
|
+
* @brief 调用此方法开始播放 。
|
|
13269
|
+
*/
|
|
12893
13270
|
play() {
|
|
12894
13271
|
/* istanbul ignore next -- @preserve */
|
|
12895
13272
|
return this._player.play();
|
|
12896
13273
|
}
|
|
13274
|
+
/**
|
|
13275
|
+
* @brief 调用此方法暂停播放。
|
|
13276
|
+
*/
|
|
12897
13277
|
pause() {
|
|
12898
13278
|
/* istanbul ignore next -- @preserve */
|
|
12899
13279
|
return this._player.pause();
|
|
12900
13280
|
}
|
|
13281
|
+
/**
|
|
13282
|
+
* @brief 调用此方法打开画中画。
|
|
13283
|
+
*/
|
|
12901
13284
|
requestPIP() {
|
|
12902
13285
|
var _a;
|
|
12903
13286
|
/* istanbul ignore next -- @preserve */
|
|
12904
13287
|
(_a = this._player.plugins.pip) == null ? void 0 : _a.requestPIP();
|
|
12905
13288
|
}
|
|
13289
|
+
/**
|
|
13290
|
+
* @brief 调用此方法关闭画中画。
|
|
13291
|
+
*/
|
|
12906
13292
|
exitPIP() {
|
|
12907
13293
|
var _a;
|
|
12908
13294
|
/* istanbul ignore next -- @preserve */
|
|
12909
13295
|
(_a = this._player.plugins.pip) == null ? void 0 : _a.exitPIP();
|
|
12910
13296
|
}
|
|
13297
|
+
/**
|
|
13298
|
+
* @brief 调用此方法重新拉流。
|
|
13299
|
+
*/
|
|
12911
13300
|
retry() {
|
|
12912
|
-
this._player.emit(Events.RETRY);
|
|
12913
13301
|
return this._player.retry();
|
|
12914
13302
|
}
|
|
13303
|
+
/**
|
|
13304
|
+
* @brief 播放器获取焦点,调用该方法 `veplayer.isFocused` 将会变为 `true`,并触发 `PLAYER_FOCUS` 事件。
|
|
13305
|
+
* @param data 播放器获取焦点配置信息。
|
|
13306
|
+
*/
|
|
12915
13307
|
focus(data) {
|
|
12916
13308
|
return this._player.focus(data);
|
|
12917
13309
|
}
|
|
13310
|
+
/**
|
|
13311
|
+
* @brief 播放器失去焦点,调用该方法 `veplayer.isFocused` 将会变为 `false`,并触发 `PLAYER_BLUR` 事件。
|
|
13312
|
+
* @param data 播放器失去焦点配置信息。
|
|
13313
|
+
*/
|
|
12918
13314
|
blur(data) {
|
|
12919
13315
|
return this._player.blur(data);
|
|
12920
13316
|
}
|
|
12921
|
-
|
|
13317
|
+
/**
|
|
13318
|
+
* @brief 调用此方法进入系统全屏状态。如果该方法调用的时候处于网页全屏状态会自动退出网页全屏,下发事件 `Events.FULLSCREEN_CHANGE`。
|
|
13319
|
+
* @param el 全屏作用的 DOM 节点。
|
|
13320
|
+
*/
|
|
13321
|
+
requestFullscreen(el) {
|
|
12922
13322
|
return this._player.getFullscreen(el);
|
|
12923
13323
|
}
|
|
13324
|
+
/**
|
|
13325
|
+
* @brief 调用此方法退出系统全屏状态,调用该方法 `veplayer.isFullscreen` 将会变为 `false`,并触发 `Events.FULLSCREEN_CHANGE` 事件。
|
|
13326
|
+
* @param el 全屏作用的 DOM 节点。
|
|
13327
|
+
*/
|
|
12924
13328
|
exitFullscreen(el) {
|
|
12925
13329
|
return this._player.exitFullscreen(el);
|
|
12926
13330
|
}
|
|
12927
|
-
|
|
13331
|
+
/**
|
|
13332
|
+
* @brief 调用此方法进入网页样式全屏状态,播放器进入网页全屏,利用 CSS 模拟实现全屏效果。如果该接口调用的时候处于全屏状态,会自动退出全屏,下发事件 `Events.CSS_FULLSCREEN_CHANGE`。
|
|
13333
|
+
* @param el 全屏作用的 DOM 节点。
|
|
13334
|
+
*/
|
|
13335
|
+
requestCssFullscreen(el) {
|
|
12928
13336
|
return this._player.getCssFullscreen(el);
|
|
12929
13337
|
}
|
|
13338
|
+
/**
|
|
13339
|
+
* @brief 调用此方法退出网页样式全屏状态。 调用该方法 `veplayer.isFullscreen` 将会变为 `false`,并触发 `Events.CSS_FULLSCREEN_CHANGE` 事件。
|
|
13340
|
+
*/
|
|
12930
13341
|
exitCssFullscreen() {
|
|
12931
13342
|
return this._player.exitCssFullscreen();
|
|
12932
13343
|
}
|
|
13344
|
+
/**
|
|
13345
|
+
* @brief 调用此方法在当前播放器上注册指定插件。
|
|
13346
|
+
* @param plugin 插件构造函数。
|
|
13347
|
+
* @param config 插件的配置列表。
|
|
13348
|
+
*/
|
|
12933
13349
|
registerPlugin(plugin, config) {
|
|
12934
13350
|
return this._player.registerPlugin(plugin, config);
|
|
12935
13351
|
}
|
|
12936
|
-
|
|
12937
|
-
|
|
13352
|
+
/**
|
|
13353
|
+
* @brief 调用此方法在当前播放器上销毁/注销指定插件。
|
|
13354
|
+
* @param plugin 插件实例或者插件名称。
|
|
13355
|
+
*/
|
|
13356
|
+
unRegisterPlugin(plugin) {
|
|
13357
|
+
return this._player.unRegisterPlugin(plugin);
|
|
12938
13358
|
}
|
|
12939
|
-
|
|
13359
|
+
/**
|
|
13360
|
+
* @brief 调用此接口显示指定插件图标。
|
|
13361
|
+
* @param pluginNames 插件名称
|
|
13362
|
+
*/
|
|
12940
13363
|
showIcon(pluginNames) {
|
|
12941
13364
|
const morePlugin = this._player.getPlugin("more");
|
|
12942
13365
|
pluginNames.forEach((pluginName) => {
|
|
@@ -12950,7 +13373,10 @@ var __publicField = (obj, key, value) => {
|
|
|
12950
13373
|
}
|
|
12951
13374
|
});
|
|
12952
13375
|
}
|
|
12953
|
-
|
|
13376
|
+
/**
|
|
13377
|
+
* @brief 调用此接口隐藏指定插件图标。
|
|
13378
|
+
* @param pluginNames 插件名称
|
|
13379
|
+
*/
|
|
12954
13380
|
hideIcon(pluginNames) {
|
|
12955
13381
|
const morePlugin = this._player.getPlugin("more");
|
|
12956
13382
|
pluginNames.forEach((pluginName) => {
|
|
@@ -12964,10 +13390,16 @@ var __publicField = (obj, key, value) => {
|
|
|
12964
13390
|
}
|
|
12965
13391
|
});
|
|
12966
13392
|
}
|
|
13393
|
+
/**
|
|
13394
|
+
* @brief 调用此方法销毁播放器实例。
|
|
13395
|
+
*/
|
|
12967
13396
|
destroy() {
|
|
12968
13397
|
this._player.off(ERROR, this._errorCallback);
|
|
12969
13398
|
this._player.destroy();
|
|
12970
13399
|
}
|
|
13400
|
+
/**
|
|
13401
|
+
* @hidden
|
|
13402
|
+
*/
|
|
12971
13403
|
async prepare(url) {
|
|
12972
13404
|
var _a, _b;
|
|
12973
13405
|
const result = await ((_a = this._preparePlugins) == null ? void 0 : _a.call(this, url));
|
|
@@ -12983,9 +13415,12 @@ var __publicField = (obj, key, value) => {
|
|
|
12983
13415
|
if (result == null ? void 0 : result.options) {
|
|
12984
13416
|
this._player.setConfig(result.options);
|
|
12985
13417
|
}
|
|
12986
|
-
return
|
|
12987
|
-
|
|
12988
|
-
|
|
13418
|
+
return {
|
|
13419
|
+
plugins: addedPlugins.map((plugin) => {
|
|
13420
|
+
return this._player.registerPlugin(plugin);
|
|
13421
|
+
}),
|
|
13422
|
+
options: result == null ? void 0 : result.options
|
|
13423
|
+
};
|
|
12989
13424
|
}
|
|
12990
13425
|
async _handleFallback(err) {
|
|
12991
13426
|
this._player.addClass(STATE_CLASS.ENTER);
|
|
@@ -13020,7 +13455,10 @@ var __publicField = (obj, key, value) => {
|
|
|
13020
13455
|
async _switch(targetDefinition) {
|
|
13021
13456
|
var _a, _b, _c, _d, _e, _f;
|
|
13022
13457
|
const preDefinition = clonedeep(this._sourceManager.definition);
|
|
13023
|
-
const newPlugins = await this.prepare(targetDefinition.url);
|
|
13458
|
+
const { plugins: newPlugins, options } = await this.prepare(targetDefinition.url) || {};
|
|
13459
|
+
if (options == null ? void 0 : options.url) {
|
|
13460
|
+
targetDefinition.url = options == null ? void 0 : options.url;
|
|
13461
|
+
}
|
|
13024
13462
|
this._sourceManager.switch(targetDefinition);
|
|
13025
13463
|
(_b = (_a = this._player) == null ? void 0 : _a.plugins) == null ? void 0 : _b.sources.renderItemList();
|
|
13026
13464
|
(_d = (_c = this._player) == null ? void 0 : _c.plugins) == null ? void 0 : _d.definition.renderItemList();
|
|
@@ -13036,11 +13474,13 @@ var __publicField = (obj, key, value) => {
|
|
|
13036
13474
|
}
|
|
13037
13475
|
}
|
|
13038
13476
|
async _switchUrl(url) {
|
|
13039
|
-
const newPlugins = await this.prepare(url);
|
|
13477
|
+
const { plugins: newPlugins, options } = await this.prepare(url) || {};
|
|
13478
|
+
const newUrl = (options == null ? void 0 : options.url) ?? url;
|
|
13479
|
+
this._sourceManager.updateSources(newUrl);
|
|
13040
13480
|
if (newPlugins == null ? void 0 : newPlugins.length) {
|
|
13041
|
-
this._callBeforePlayerInitForUrl(newPlugins,
|
|
13481
|
+
this._callBeforePlayerInitForUrl(newPlugins, newUrl);
|
|
13042
13482
|
} else {
|
|
13043
|
-
const res = this._player.switchURL(
|
|
13483
|
+
const res = this._player.switchURL(newUrl, false);
|
|
13044
13484
|
const curTime = this._player.currentTime;
|
|
13045
13485
|
if (res && res.then) {
|
|
13046
13486
|
return res;
|