web3dlink 2.1.6 → 2.1.8

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/web3dlink.js CHANGED
@@ -2297,7 +2297,9 @@ var validator$7 = {
2297
2297
  };
2298
2298
  return this.commandManager.sendWithDefault(i, n);
2299
2299
  }
2300
- }, hasValue$1 = (e) => e != null;
2300
+ };
2301
+ //#endregion
2302
+ //#region ../api/hydrodynamicForce/validate.js
2301
2303
  function create$1(e) {
2302
2304
  let t = [], n = { ...e };
2303
2305
  return t.push(...validateRequiredNumber({
@@ -2312,7 +2314,7 @@ function create$1(e) {
2312
2314
  field: "xMax",
2313
2315
  value: e.xMax,
2314
2316
  required: !0,
2315
- min: -180,
2317
+ min: e.xMin,
2316
2318
  max: 180
2317
2319
  })), t.push(...validateRequiredNumber({
2318
2320
  normalized: n,
@@ -2326,7 +2328,7 @@ function create$1(e) {
2326
2328
  field: "yMax",
2327
2329
  value: e.yMax,
2328
2330
  required: !0,
2329
- min: -90,
2331
+ min: e.yMin,
2330
2332
  max: 90
2331
2333
  })), t.push(...validateRequiredNumber({
2332
2334
  normalized: n,
@@ -2337,8 +2339,9 @@ function create$1(e) {
2337
2339
  normalized: n,
2338
2340
  field: "maxTerrain",
2339
2341
  value: e.maxTerrain,
2340
- required: !0
2341
- })), hasValue$1(e.xMin) && hasValue$1(e.xMax) && e.xMax <= e.xMin && t.push("[xMax]必须大于[xMin]"), hasValue$1(e.yMin) && hasValue$1(e.yMax) && e.yMax <= e.yMin && t.push("[yMax]必须大于[yMin]"), hasValue$1(e.minTerrain) && hasValue$1(e.maxTerrain) && e.maxTerrain <= e.minTerrain && t.push("[maxTerrain]必须大于[minTerrain]"), t.push(...validateRequiredString({
2342
+ required: !0,
2343
+ min: e.minTerrain
2344
+ })), t.push(...validateRequiredString({
2342
2345
  normalized: n,
2343
2346
  field: "mapUrl",
2344
2347
  value: e.mapUrl
@@ -2362,7 +2365,8 @@ function waterFlow(e) {
2362
2365
  normalized: n,
2363
2366
  field: "maxWater",
2364
2367
  value: e.maxWater,
2365
- required: !0
2368
+ required: !0,
2369
+ min: e.minWater
2366
2370
  })), t.push(...validateRequiredNumber({
2367
2371
  normalized: n,
2368
2372
  field: "minU",
@@ -2372,7 +2376,8 @@ function waterFlow(e) {
2372
2376
  normalized: n,
2373
2377
  field: "maxU",
2374
2378
  value: e.maxU,
2375
- required: !0
2379
+ required: !0,
2380
+ min: e.minU
2376
2381
  })), t.push(...validateRequiredNumber({
2377
2382
  normalized: n,
2378
2383
  field: "minV",
@@ -2382,8 +2387,9 @@ function waterFlow(e) {
2382
2387
  normalized: n,
2383
2388
  field: "maxV",
2384
2389
  value: e.maxV,
2385
- required: !0
2386
- })), hasValue$1(e.minWater) && hasValue$1(e.maxWater) && e.maxWater <= e.minWater && t.push("[maxWater]必须大于[minWater]"), hasValue$1(e.minU) && hasValue$1(e.maxU) && e.maxU <= e.minU && t.push("[maxU]必须大于[minU]"), hasValue$1(e.minV) && hasValue$1(e.maxV) && e.maxV <= e.minV && t.push("[maxV]必须大于[minV]"), t.push(...validateRequiredString({
2390
+ required: !0,
2391
+ min: e.minV
2392
+ })), t.push(...validateRequiredString({
2387
2393
  normalized: n,
2388
2394
  field: "waterFlowUrl",
2389
2395
  value: e.waterFlowUrl
@@ -2407,8 +2413,9 @@ function waterDepth(e) {
2407
2413
  normalized: n,
2408
2414
  field: "maxWater",
2409
2415
  value: e.maxWater,
2410
- required: !0
2411
- })), hasValue$1(e.minWater) && hasValue$1(e.maxWater) && e.maxWater <= e.minWater && t.push("[maxWater]必须大于[minWater]"), e.rangeList === void 0 || e.rangeList === null ? t.push("[rangeList]为必填项") : Array.isArray(e.rangeList) ? e.rangeList.length === 0 ? t.push("[rangeList]不能为空数组") : e.rangeList.forEach((e, n) => {
2416
+ required: !0,
2417
+ min: e.minWater
2418
+ })), e.rangeList === void 0 || e.rangeList === null ? t.push("[rangeList]为必填项") : Array.isArray(e.rangeList) ? e.rangeList.length === 0 ? t.push("[rangeList]不能为空数组") : e.rangeList.forEach((e, n) => {
2412
2419
  if (typeof e != "object" || !e) {
2413
2420
  t.push(`[rangeList[${n}]]必须是对象类型`);
2414
2421
  return;
@@ -2436,6 +2443,32 @@ function waterDepth(e) {
2436
2443
  normalized: n
2437
2444
  };
2438
2445
  }
2446
+ function sediment(e) {
2447
+ let t = [], n = { ...e };
2448
+ return t.push(...validateRequiredString({
2449
+ normalized: n,
2450
+ field: "key",
2451
+ value: e.key
2452
+ })), t.push(...validateRequiredString({
2453
+ normalized: n,
2454
+ field: "sedimentTexUrl",
2455
+ value: e.sedimentTexUrl
2456
+ })), t.push(...validateRequiredNumber({
2457
+ normalized: n,
2458
+ field: "minWater",
2459
+ value: e.minWater,
2460
+ required: !0
2461
+ })), t.push(...validateRequiredNumber({
2462
+ normalized: n,
2463
+ field: "maxWater",
2464
+ value: e.maxWater,
2465
+ required: !0,
2466
+ min: e.minWater
2467
+ })), {
2468
+ errors: t,
2469
+ normalized: n
2470
+ };
2471
+ }
2439
2472
  function close$1(e) {
2440
2473
  let t = [], n = { ...e };
2441
2474
  return t.push(...validateRequiredString({
@@ -2453,6 +2486,7 @@ var validator$6 = {
2453
2486
  create: create$1,
2454
2487
  waterFlow,
2455
2488
  waterDepth,
2489
+ sediment,
2456
2490
  close: close$1
2457
2491
  }, HydrodynamicForceApi = class {
2458
2492
  constructor(e) {
@@ -4121,10 +4155,10 @@ var validator = {
4121
4155
  function e(e) {
4122
4156
  if (e) for (var t = Object.keys(e), n = 0; n < t.length; ++n) e[t[n]] != null && (this[t[n]] = e[t[n]]);
4123
4157
  }
4124
- return e.prototype.width = 0, e.prototype.height = 0, e.prototype.fps = 0, e.prototype.bitrateKbps = 0, e.prototype.useWebcodec = !1, e.create = function(t) {
4158
+ return e.prototype.width = 0, e.prototype.height = 0, e.prototype.fps = 0, e.prototype.bitrateKbps = 0, e.prototype.useWebcodec = !1, e.prototype.maxWidth = 0, e.prototype.maxHeight = 0, e.prototype.devicePixelRatio = 0, e.create = function(t) {
4125
4159
  return new e(t);
4126
4160
  }, e.encode = function(e, t) {
4127
- return t ||= c.create(), e.width != null && Object.hasOwnProperty.call(e, "width") && t.uint32(8).uint32(e.width), e.height != null && Object.hasOwnProperty.call(e, "height") && t.uint32(16).uint32(e.height), e.fps != null && Object.hasOwnProperty.call(e, "fps") && t.uint32(24).uint32(e.fps), e.bitrateKbps != null && Object.hasOwnProperty.call(e, "bitrateKbps") && t.uint32(32).uint32(e.bitrateKbps), e.useWebcodec != null && Object.hasOwnProperty.call(e, "useWebcodec") && t.uint32(40).bool(e.useWebcodec), t;
4161
+ return t ||= c.create(), e.width != null && Object.hasOwnProperty.call(e, "width") && t.uint32(8).uint32(e.width), e.height != null && Object.hasOwnProperty.call(e, "height") && t.uint32(16).uint32(e.height), e.fps != null && Object.hasOwnProperty.call(e, "fps") && t.uint32(24).uint32(e.fps), e.bitrateKbps != null && Object.hasOwnProperty.call(e, "bitrateKbps") && t.uint32(32).uint32(e.bitrateKbps), e.useWebcodec != null && Object.hasOwnProperty.call(e, "useWebcodec") && t.uint32(40).bool(e.useWebcodec), e.maxWidth != null && Object.hasOwnProperty.call(e, "maxWidth") && t.uint32(48).uint32(e.maxWidth), e.maxHeight != null && Object.hasOwnProperty.call(e, "maxHeight") && t.uint32(56).uint32(e.maxHeight), e.devicePixelRatio != null && Object.hasOwnProperty.call(e, "devicePixelRatio") && t.uint32(69).float(e.devicePixelRatio), t;
4128
4162
  }, e.encodeDelimited = function(e, t) {
4129
4163
  return this.encode(e, t).ldelim();
4130
4164
  }, e.decode = function(e, t) {
@@ -4147,6 +4181,15 @@ var validator = {
4147
4181
  case 5:
4148
4182
  r.useWebcodec = e.bool();
4149
4183
  break;
4184
+ case 6:
4185
+ r.maxWidth = e.uint32();
4186
+ break;
4187
+ case 7:
4188
+ r.maxHeight = e.uint32();
4189
+ break;
4190
+ case 8:
4191
+ r.devicePixelRatio = e.float();
4192
+ break;
4150
4193
  default: e.skipType(7 & i);
4151
4194
  }
4152
4195
  }
@@ -4154,15 +4197,15 @@ var validator = {
4154
4197
  }, e.decodeDelimited = function(e) {
4155
4198
  return e instanceof s || (e = new s(e)), this.decode(e, e.uint32());
4156
4199
  }, e.verify = function(e) {
4157
- return typeof e != "object" || !e ? "object expected" : e.width != null && e.hasOwnProperty("width") && !l.isInteger(e.width) ? "width: integer expected" : e.height != null && e.hasOwnProperty("height") && !l.isInteger(e.height) ? "height: integer expected" : e.fps != null && e.hasOwnProperty("fps") && !l.isInteger(e.fps) ? "fps: integer expected" : e.bitrateKbps != null && e.hasOwnProperty("bitrateKbps") && !l.isInteger(e.bitrateKbps) ? "bitrateKbps: integer expected" : e.useWebcodec != null && e.hasOwnProperty("useWebcodec") && typeof e.useWebcodec != "boolean" ? "useWebcodec: boolean expected" : null;
4200
+ return typeof e != "object" || !e ? "object expected" : e.width != null && e.hasOwnProperty("width") && !l.isInteger(e.width) ? "width: integer expected" : e.height != null && e.hasOwnProperty("height") && !l.isInteger(e.height) ? "height: integer expected" : e.fps != null && e.hasOwnProperty("fps") && !l.isInteger(e.fps) ? "fps: integer expected" : e.bitrateKbps != null && e.hasOwnProperty("bitrateKbps") && !l.isInteger(e.bitrateKbps) ? "bitrateKbps: integer expected" : e.useWebcodec != null && e.hasOwnProperty("useWebcodec") && typeof e.useWebcodec != "boolean" ? "useWebcodec: boolean expected" : e.maxWidth != null && e.hasOwnProperty("maxWidth") && !l.isInteger(e.maxWidth) ? "maxWidth: integer expected" : e.maxHeight != null && e.hasOwnProperty("maxHeight") && !l.isInteger(e.maxHeight) ? "maxHeight: integer expected" : e.devicePixelRatio != null && e.hasOwnProperty("devicePixelRatio") && typeof e.devicePixelRatio != "number" ? "devicePixelRatio: number expected" : null;
4158
4201
  }, e.fromObject = function(e) {
4159
4202
  if (e instanceof u.CloudLark.StartStreamRequest) return e;
4160
4203
  var t = new u.CloudLark.StartStreamRequest();
4161
- return e.width != null && (t.width = e.width >>> 0), e.height != null && (t.height = e.height >>> 0), e.fps != null && (t.fps = e.fps >>> 0), e.bitrateKbps != null && (t.bitrateKbps = e.bitrateKbps >>> 0), e.useWebcodec != null && (t.useWebcodec = !!e.useWebcodec), t;
4204
+ return e.width != null && (t.width = e.width >>> 0), e.height != null && (t.height = e.height >>> 0), e.fps != null && (t.fps = e.fps >>> 0), e.bitrateKbps != null && (t.bitrateKbps = e.bitrateKbps >>> 0), e.useWebcodec != null && (t.useWebcodec = !!e.useWebcodec), e.maxWidth != null && (t.maxWidth = e.maxWidth >>> 0), e.maxHeight != null && (t.maxHeight = e.maxHeight >>> 0), e.devicePixelRatio != null && (t.devicePixelRatio = Number(e.devicePixelRatio)), t;
4162
4205
  }, e.toObject = function(e, t) {
4163
4206
  t ||= {};
4164
4207
  var n = {};
4165
- return t.defaults && (n.width = 0, n.height = 0, n.fps = 0, n.bitrateKbps = 0, n.useWebcodec = !1), e.width != null && e.hasOwnProperty("width") && (n.width = e.width), e.height != null && e.hasOwnProperty("height") && (n.height = e.height), e.fps != null && e.hasOwnProperty("fps") && (n.fps = e.fps), e.bitrateKbps != null && e.hasOwnProperty("bitrateKbps") && (n.bitrateKbps = e.bitrateKbps), e.useWebcodec != null && e.hasOwnProperty("useWebcodec") && (n.useWebcodec = e.useWebcodec), n;
4208
+ return t.defaults && (n.width = 0, n.height = 0, n.fps = 0, n.bitrateKbps = 0, n.useWebcodec = !1, n.maxWidth = 0, n.maxHeight = 0, n.devicePixelRatio = 0), e.width != null && e.hasOwnProperty("width") && (n.width = e.width), e.height != null && e.hasOwnProperty("height") && (n.height = e.height), e.fps != null && e.hasOwnProperty("fps") && (n.fps = e.fps), e.bitrateKbps != null && e.hasOwnProperty("bitrateKbps") && (n.bitrateKbps = e.bitrateKbps), e.useWebcodec != null && e.hasOwnProperty("useWebcodec") && (n.useWebcodec = e.useWebcodec), e.maxWidth != null && e.hasOwnProperty("maxWidth") && (n.maxWidth = e.maxWidth), e.maxHeight != null && e.hasOwnProperty("maxHeight") && (n.maxHeight = e.maxHeight), e.devicePixelRatio != null && e.hasOwnProperty("devicePixelRatio") && (n.devicePixelRatio = t.json && !isFinite(e.devicePixelRatio) ? String(e.devicePixelRatio) : e.devicePixelRatio), n;
4166
4209
  }, e.prototype.toJSON = function() {
4167
4210
  return this.constructor.toObject(this, o.util.toJSONOptions);
4168
4211
  }, e;
@@ -6542,10 +6585,10 @@ var validator = {
6542
6585
  function e(e) {
6543
6586
  if (e) for (var t = Object.keys(e), n = 0; n < t.length; ++n) e[t[n]] != null && (this[t[n]] = e[t[n]]);
6544
6587
  }
6545
- return e.prototype.width = 0, e.prototype.height = 0, e.create = function(t) {
6588
+ return e.prototype.width = 0, e.prototype.height = 0, e.prototype.devicePixelRatio = 0, e.create = function(t) {
6546
6589
  return new e(t);
6547
6590
  }, e.encode = function(e, t) {
6548
- return t ||= c.create(), e.width != null && Object.hasOwnProperty.call(e, "width") && t.uint32(8).uint32(e.width), e.height != null && Object.hasOwnProperty.call(e, "height") && t.uint32(16).uint32(e.height), t;
6591
+ return t ||= c.create(), e.width != null && Object.hasOwnProperty.call(e, "width") && t.uint32(8).uint32(e.width), e.height != null && Object.hasOwnProperty.call(e, "height") && t.uint32(16).uint32(e.height), e.devicePixelRatio != null && Object.hasOwnProperty.call(e, "devicePixelRatio") && t.uint32(29).float(e.devicePixelRatio), t;
6549
6592
  }, e.encodeDelimited = function(e, t) {
6550
6593
  return this.encode(e, t).ldelim();
6551
6594
  }, e.decode = function(e, t) {
@@ -6559,6 +6602,9 @@ var validator = {
6559
6602
  case 2:
6560
6603
  r.height = e.uint32();
6561
6604
  break;
6605
+ case 3:
6606
+ r.devicePixelRatio = e.float();
6607
+ break;
6562
6608
  default: e.skipType(7 & i);
6563
6609
  }
6564
6610
  }
@@ -6566,15 +6612,15 @@ var validator = {
6566
6612
  }, e.decodeDelimited = function(e) {
6567
6613
  return e instanceof s || (e = new s(e)), this.decode(e, e.uint32());
6568
6614
  }, e.verify = function(e) {
6569
- return typeof e != "object" || !e ? "object expected" : e.width != null && e.hasOwnProperty("width") && !l.isInteger(e.width) ? "width: integer expected" : e.height != null && e.hasOwnProperty("height") && !l.isInteger(e.height) ? "height: integer expected" : null;
6615
+ return typeof e != "object" || !e ? "object expected" : e.width != null && e.hasOwnProperty("width") && !l.isInteger(e.width) ? "width: integer expected" : e.height != null && e.hasOwnProperty("height") && !l.isInteger(e.height) ? "height: integer expected" : e.devicePixelRatio != null && e.hasOwnProperty("devicePixelRatio") && typeof e.devicePixelRatio != "number" ? "devicePixelRatio: number expected" : null;
6570
6616
  }, e.fromObject = function(e) {
6571
6617
  if (e instanceof u.CloudLark.AppResize) return e;
6572
6618
  var t = new u.CloudLark.AppResize();
6573
- return e.width != null && (t.width = e.width >>> 0), e.height != null && (t.height = e.height >>> 0), t;
6619
+ return e.width != null && (t.width = e.width >>> 0), e.height != null && (t.height = e.height >>> 0), e.devicePixelRatio != null && (t.devicePixelRatio = Number(e.devicePixelRatio)), t;
6574
6620
  }, e.toObject = function(e, t) {
6575
6621
  t ||= {};
6576
6622
  var n = {};
6577
- return t.defaults && (n.width = 0, n.height = 0), e.width != null && e.hasOwnProperty("width") && (n.width = e.width), e.height != null && e.hasOwnProperty("height") && (n.height = e.height), n;
6623
+ return t.defaults && (n.width = 0, n.height = 0, n.devicePixelRatio = 0), e.width != null && e.hasOwnProperty("width") && (n.width = e.width), e.height != null && e.hasOwnProperty("height") && (n.height = e.height), e.devicePixelRatio != null && e.hasOwnProperty("devicePixelRatio") && (n.devicePixelRatio = t.json && !isFinite(e.devicePixelRatio) ? String(e.devicePixelRatio) : e.devicePixelRatio), n;
6578
6624
  }, e.prototype.toJSON = function() {
6579
6625
  return this.constructor.toObject(this, o.util.toJSONOptions);
6580
6626
  }, e;
@@ -7948,17 +7994,18 @@ var validator = {
7948
7994
  if (e) for (var t = Object.keys(e), n = 0; n < t.length; ++n) e[t[n]] != null && (this[t[n]] = e[t[n]]);
7949
7995
  }
7950
7996
  var t;
7951
- return e.prototype.bitrate = null, e.prototype.fps = null, e.prototype.forceidr = null, Object.defineProperty(e.prototype, "video", {
7997
+ return e.prototype.bitrate = null, e.prototype.fps = null, e.prototype.forceidr = null, e.prototype.superResolution = null, Object.defineProperty(e.prototype, "video", {
7952
7998
  get: l.oneOfGetter(t = [
7953
7999
  "bitrate",
7954
8000
  "fps",
7955
- "forceidr"
8001
+ "forceidr",
8002
+ "superResolution"
7956
8003
  ]),
7957
8004
  set: l.oneOfSetter(t)
7958
8005
  }), e.create = function(t) {
7959
8006
  return new e(t);
7960
8007
  }, e.encode = function(e, t) {
7961
- return t ||= c.create(), e.bitrate != null && Object.hasOwnProperty.call(e, "bitrate") && t.uint32(8).uint32(e.bitrate), e.fps != null && Object.hasOwnProperty.call(e, "fps") && t.uint32(16).uint32(e.fps), e.forceidr != null && Object.hasOwnProperty.call(e, "forceidr") && t.uint32(24).bool(e.forceidr), t;
8008
+ return t ||= c.create(), e.bitrate != null && Object.hasOwnProperty.call(e, "bitrate") && t.uint32(8).uint32(e.bitrate), e.fps != null && Object.hasOwnProperty.call(e, "fps") && t.uint32(16).uint32(e.fps), e.forceidr != null && Object.hasOwnProperty.call(e, "forceidr") && t.uint32(24).bool(e.forceidr), e.superResolution != null && Object.hasOwnProperty.call(e, "superResolution") && u.CloudLark.SuperResolutionReconfigure.encode(e.superResolution, t.uint32(34).fork()).ldelim(), t;
7962
8009
  }, e.encodeDelimited = function(e, t) {
7963
8010
  return this.encode(e, t).ldelim();
7964
8011
  }, e.decode = function(e, t) {
@@ -7975,6 +8022,9 @@ var validator = {
7975
8022
  case 3:
7976
8023
  r.forceidr = e.bool();
7977
8024
  break;
8025
+ case 4:
8026
+ r.superResolution = u.CloudLark.SuperResolutionReconfigure.decode(e, e.uint32());
8027
+ break;
7978
8028
  default: e.skipType(7 & i);
7979
8029
  }
7980
8030
  }
@@ -7993,15 +8043,68 @@ var validator = {
7993
8043
  if (t.video === 1) return "video: multiple values";
7994
8044
  if (t.video = 1, typeof e.forceidr != "boolean") return "forceidr: boolean expected";
7995
8045
  }
8046
+ if (e.superResolution != null && e.hasOwnProperty("superResolution")) {
8047
+ if (t.video === 1) return "video: multiple values";
8048
+ t.video = 1;
8049
+ var n = u.CloudLark.SuperResolutionReconfigure.verify(e.superResolution);
8050
+ if (n) return "superResolution." + n;
8051
+ }
7996
8052
  return null;
7997
8053
  }, e.fromObject = function(e) {
7998
8054
  if (e instanceof u.CloudLark.VideoReconfigure) return e;
7999
8055
  var t = new u.CloudLark.VideoReconfigure();
8000
- return e.bitrate != null && (t.bitrate = e.bitrate >>> 0), e.fps != null && (t.fps = e.fps >>> 0), e.forceidr != null && (t.forceidr = !!e.forceidr), t;
8056
+ if (e.bitrate != null && (t.bitrate = e.bitrate >>> 0), e.fps != null && (t.fps = e.fps >>> 0), e.forceidr != null && (t.forceidr = !!e.forceidr), e.superResolution != null) {
8057
+ if (typeof e.superResolution != "object") throw TypeError(".CloudLark.VideoReconfigure.superResolution: object expected");
8058
+ t.superResolution = u.CloudLark.SuperResolutionReconfigure.fromObject(e.superResolution);
8059
+ }
8060
+ return t;
8001
8061
  }, e.toObject = function(e, t) {
8002
8062
  t ||= {};
8003
8063
  var n = {};
8004
- return e.bitrate != null && e.hasOwnProperty("bitrate") && (n.bitrate = e.bitrate, t.oneofs && (n.video = "bitrate")), e.fps != null && e.hasOwnProperty("fps") && (n.fps = e.fps, t.oneofs && (n.video = "fps")), e.forceidr != null && e.hasOwnProperty("forceidr") && (n.forceidr = e.forceidr, t.oneofs && (n.video = "forceidr")), n;
8064
+ return e.bitrate != null && e.hasOwnProperty("bitrate") && (n.bitrate = e.bitrate, t.oneofs && (n.video = "bitrate")), e.fps != null && e.hasOwnProperty("fps") && (n.fps = e.fps, t.oneofs && (n.video = "fps")), e.forceidr != null && e.hasOwnProperty("forceidr") && (n.forceidr = e.forceidr, t.oneofs && (n.video = "forceidr")), e.superResolution != null && e.hasOwnProperty("superResolution") && (n.superResolution = u.CloudLark.SuperResolutionReconfigure.toObject(e.superResolution, t), t.oneofs && (n.video = "superResolution")), n;
8065
+ }, e.prototype.toJSON = function() {
8066
+ return this.constructor.toObject(this, o.util.toJSONOptions);
8067
+ }, e;
8068
+ }(), a.SuperResolutionReconfigure = function() {
8069
+ function e(e) {
8070
+ if (e) for (var t = Object.keys(e), n = 0; n < t.length; ++n) e[t[n]] != null && (this[t[n]] = e[t[n]]);
8071
+ }
8072
+ return e.prototype.enable = !1, e.prototype.width = 0, e.prototype.height = 0, e.create = function(t) {
8073
+ return new e(t);
8074
+ }, e.encode = function(e, t) {
8075
+ return t ||= c.create(), e.enable != null && Object.hasOwnProperty.call(e, "enable") && t.uint32(8).bool(e.enable), e.width != null && Object.hasOwnProperty.call(e, "width") && t.uint32(16).uint32(e.width), e.height != null && Object.hasOwnProperty.call(e, "height") && t.uint32(24).uint32(e.height), t;
8076
+ }, e.encodeDelimited = function(e, t) {
8077
+ return this.encode(e, t).ldelim();
8078
+ }, e.decode = function(e, t) {
8079
+ e instanceof s || (e = s.create(e));
8080
+ for (var n = t === void 0 ? e.len : e.pos + t, r = new u.CloudLark.SuperResolutionReconfigure(); e.pos < n;) {
8081
+ var i = e.uint32();
8082
+ switch (i >>> 3) {
8083
+ case 1:
8084
+ r.enable = e.bool();
8085
+ break;
8086
+ case 2:
8087
+ r.width = e.uint32();
8088
+ break;
8089
+ case 3:
8090
+ r.height = e.uint32();
8091
+ break;
8092
+ default: e.skipType(7 & i);
8093
+ }
8094
+ }
8095
+ return r;
8096
+ }, e.decodeDelimited = function(e) {
8097
+ return e instanceof s || (e = new s(e)), this.decode(e, e.uint32());
8098
+ }, e.verify = function(e) {
8099
+ return typeof e != "object" || !e ? "object expected" : e.enable != null && e.hasOwnProperty("enable") && typeof e.enable != "boolean" ? "enable: boolean expected" : e.width != null && e.hasOwnProperty("width") && !l.isInteger(e.width) ? "width: integer expected" : e.height != null && e.hasOwnProperty("height") && !l.isInteger(e.height) ? "height: integer expected" : null;
8100
+ }, e.fromObject = function(e) {
8101
+ if (e instanceof u.CloudLark.SuperResolutionReconfigure) return e;
8102
+ var t = new u.CloudLark.SuperResolutionReconfigure();
8103
+ return e.enable != null && (t.enable = !!e.enable), e.width != null && (t.width = e.width >>> 0), e.height != null && (t.height = e.height >>> 0), t;
8104
+ }, e.toObject = function(e, t) {
8105
+ t ||= {};
8106
+ var n = {};
8107
+ return t.defaults && (n.enable = !1, n.width = 0, n.height = 0), e.enable != null && e.hasOwnProperty("enable") && (n.enable = e.enable), e.width != null && e.hasOwnProperty("width") && (n.width = e.width), e.height != null && e.hasOwnProperty("height") && (n.height = e.height), n;
8005
8108
  }, e.prototype.toJSON = function() {
8006
8109
  return this.constructor.toObject(this, o.util.toJSONOptions);
8007
8110
  }, e;
@@ -9401,7 +9504,7 @@ var validator = {
9401
9504
  }(), a), e.exports = u;
9402
9505
  },
9403
9506
  731: function(e) {
9404
- e.exports = JSON.parse("{\"button\":{\"status\":\"連接狀態\",\"mouseMode\":\"當前鼠標模式\",\"mouseModeAuto\":\"自动判断\",\"mosueModeLock\":\"全局鎖定\",\"scale\":\"鋪滿\",\"scaleToNormal\":\"還原\",\"scaleAuto\":\"適應\",\"lock\":\"全局鎖定\",\"fullScreen\":\"全屏\",\"exit\":\"退出\",\"setup\":\"設置\",\"show\":\"顯示\",\"hide\":\"隱藏\",\"hideVMouse\":\"隱藏虛擬鼠標\",\"showVMouse\":\"顯示虛擬鼠標\",\"hideVKeyboard\":\"隱藏虛擬鍵盤\",\"showVKeyboard\":\"顯示虛擬鍵盤\",\"playerMode\":\"模式\",\"playerMode_Normal\":\"普通模式\",\"playerMode_Interactive\":\"交互模式\",\"userType\":\"角色\",\"userType_Observer\":\"觀看者\",\"userType_Player\":\"操作者\",\"requireNickName\":\"請輸入暱稱\",\"requireInputChinese\":\"是否需要輸入中文?\",\"buttonSubmit\":\"確定\",\"buttonCancel\":\"取消\",\"buttonInput\":\"輸入\",\"buttonBack\":\"返回\",\"buttonClose\":\"關閉\"},\"notice\":{\"browserVersion\":\"檢測到您當前瀏覽器內核版本較低,建議升級。是否繼續使用?\",\"browserUnsupport\":\"不支持當前瀏覽器/模式。推薦使用 Chrome 瀏覽器或使用極速模式。\",\"foundError\":\"出現錯誤,請向開發人員反饋。錯誤:\",\"start\":\"開始\",\"remainMin\":\"系統剩餘時間:\",\"firstPersion\":\"點擊畫面鎖定鼠標指針。按 ESC 釋放鼠標\",\"requestWebsite\":\"請求打開網址:\",\"lockMouse\":\"已鎖定鼠標,按 ESC 退出鎖定\",\"hideControllerBar\":\"已隱藏控制欄\",\"hideControllerBarShotCut\":\"已隱藏控制欄, Alt + C 鍵顯示控制欄\",\"showControllerBar\":\"已顯示控制欄\",\"showControllerBarShotCut\":\"已顯示控制欄, Alt + C 隱藏示控制欄\",\"releaseMouse\":\"按 ESC 釋放鼠標\",\"badNetwork\":\"當前網絡環境差,可能影響體驗\",\"INITED\":\"初始化\",\"WEBSOCKET_CHANNEL_OPEN\":\"連接渲染服務器\",\"LOGIN_SUCCESS\":\"登錄渲染服務器\",\"RTC_CONNECTED\":\"點對點連接\",\"MEDIA_LOADED\":\"準備雲端應用\",\"SYNC_APP\":\"應用同步中,請耐心等待一分鐘\",\"RTC_RETRY\":\"檢測到點對點連接斷開,正在重新連接\",\"APP_RETRY_CONFIRM\":\"檢測到雲端應用退出,是否關閉?選擇確定退出當前頁面,選擇取消重新啓動。\",\"APP_RETRY\":\"雲端應用退出,重新啓動中\",\"START\":\"點擊屏幕開始\",\"PLAY_FAILED\":\"應用啓動時間過長,如果長時間未進入,請聯繫管理員檢查雲端應用。\",\"LOCK_POINTER_FAILED\":\"鎖定滑鼠失敗,切換為非鎖定模式\",\"LOCK_POINTER_FAILED_SECURITY_ERROR\":\"鎖定滑鼠失敗. 請確認使用HTTPS訪問.\"}}");
9507
+ e.exports = JSON.parse("{\"button\":{\"status\":\"連接狀態\",\"mouseMode\":\"當前鼠標模式\",\"mouseModeAuto\":\"自动判断\",\"mosueModeLock\":\"全局鎖定\",\"scale\":\"鋪滿\",\"scaleToNormal\":\"還原\",\"scaleAuto\":\"適應\",\"lock\":\"全局鎖定\",\"fullScreen\":\"全屏\",\"exit\":\"退出\",\"setup\":\"設置\",\"show\":\"顯示\",\"hide\":\"隱藏\",\"hideVMouse\":\"隱藏虛擬鼠標\",\"showVMouse\":\"顯示虛擬鼠標\",\"hideVKeyboard\":\"隱藏虛擬鍵盤\",\"showVKeyboard\":\"顯示虛擬鍵盤\",\"playerMode\":\"模式\",\"playerMode_Normal\":\"普通模式\",\"playerMode_Interactive\":\"交互模式\",\"userType\":\"角色\",\"userType_Observer\":\"觀看者\",\"userType_Player\":\"操作者\",\"requireNickName\":\"請輸入暱稱\",\"requireInputChinese\":\"是否需要輸入中文?\",\"buttonSubmit\":\"確定\",\"buttonCancel\":\"取消\",\"buttonInput\":\"輸入\",\"buttonBack\":\"返回\",\"buttonClose\":\"關閉\"},\"notice\":{\"browserVersion\":\"檢測到您當前瀏覽器內核版本較低,建議升級。是否繼續使用?\",\"browserUnsupport\":\"不支持當前瀏覽器/模式。推薦使用 Chrome 瀏覽器或使用極速模式。\",\"foundError\":\"出現錯誤,請向開發人員反饋。錯誤:\",\"start\":\"開始\",\"remainMin\":\"系統剩餘時間:\",\"firstPersion\":\"點擊畫面鎖定鼠標指針。按 ESC 釋放鼠標\",\"requestWebsite\":\"請求打開網址:\",\"lockMouse\":\"已鎖定鼠標,按 ESC 退出鎖定\",\"hideControllerBar\":\"已隱藏控制欄\",\"hideControllerBarShotCut\":\"已隱藏控制欄, Alt + C 鍵顯示控制欄\",\"showControllerBar\":\"已顯示控制欄\",\"showControllerBarShotCut\":\"已顯示控制欄, Alt + C 隱藏示控制欄\",\"releaseMouse\":\"按 ESC 釋放鼠標\",\"badNetwork\":\"當前網絡環境差,可能影響體驗\",\"INITED\":\"初始化\",\"WEBSOCKET_CHANNEL_OPEN\":\"連接渲染服務器\",\"LOGIN_SUCCESS\":\"登錄渲染服務器\",\"RTC_CONNECTED\":\"點對點連接\",\"MEDIA_LOADED\":\"準備雲端應用\",\"SYNC_APP\":\"應用同步中,請耐心等待一分鐘\",\"RTC_RETRY\":\"檢測到點對點連接斷開,正在重新連接\",\"APP_RETRY_CONFIRM\":\"檢測到雲端應用退出,是否關閉?選擇確定退出當前頁面,選擇取消重新啓動。\",\"APP_RETRY\":\"雲端應用退出,重新啓動中\",\"START\":\"點擊屏幕開始\",\"PLAY_FAILED\":\"應用啓動時間過長,如果長時間未進入,請聯繫管理員檢查雲端應用。\",\"LOCK_POINTER_FAILED\":\"鎖定滑鼠失敗,切換為非鎖定模式\",\"LOCK_POINTER_FAILED_SECURITY_ERROR\":\"滑鼠鎖定操作太頻繁,瀏覽器需要等一下才能再次鎖定。請稍後點擊畫面繼續操作.\",\"OBTAIN_OPERATION_PERMISSION\":\"您已獲得操作許可權\",\"LOUSE_OPERATION_PERMISSION\":\"您已失去操作許可權\"}}");
9405
9508
  },
9406
9509
  824: function(e, t, n) {
9407
9510
  var r = n(8793).navigator, i = r && r.userAgent;
@@ -10166,7 +10269,7 @@ var validator = {
10166
10269
  };
10167
10270
  },
10168
10271
  3996: function(e) {
10169
- e.exports = JSON.parse("{\"level\":{\"INFO\":\"消息\",\"WARING\":\"警告\",\"ERROR\":\"錯誤\"},\"msg\":{\"CONNECT_WEBRTC\":\"視頻連接中...\",\"ICE_FAILED\":\"當前網絡環境較差,請關閉頁面,稍等片刻重新進入應用。\",\"ICE_SUCCESS\":\"連接成功\",\"WEBRTC_HANGUP\":\"當前網絡環境較差,請關閉頁面,稍等片刻重新進入應用。\",\"CONNECT_WS_ERR\":\"連接服務器失敗\",\"CONNECT_WS_ERR_1\":\"客戶端已啓動\",\"CONNECT_WS_CLOSE\":\"與服務器連接已關閉\",\"APP_LOGIN_ERR_1\":\"客戶端未認證\",\"APP_LOGIN_ERR_2\":\"客戶端重複登錄\",\"CONNECT_APP_ERR\":\"連接應用服務器失敗\",\"CONNECT_APP_ERR2\":\"連接應用服務器超時\",\"SIGNALING_APP_TIMEOUT\":\"連接超時。請檢查網絡或聯繫管理員。\",\"REMOTE_APP_FAILED\":\"啓動雲端應用失敗。請聯繫管理員。\",\"REMOTE_APP_CLOSE\":\"雲端應用已關閉,請重新進入應用。\",\"REFRESH\":\"重新連接中...\",\"COURSE_OVER\":\"應用到時\",\"COURSE_QUIT\":\"確認退出應用\",\"ORIENTATION\":\"橫屏瀏覽效果更佳\",\"REQUEST_LOCK_MOUSE\":\"獨佔鼠標模式請點擊鎖定鼠標按鈕。\",\"LOCK_MOUSE\":\"進入獨佔鼠標模式\",\"PARAM_ERROR\":\"應用參數錯誤\",\"LOAD_CONFIG_FAILED\":\"讀取配置文件失敗\",\"TOKEN_EXPIRED\":\"檢測到 token 已過期,請重新進入。\",\"REQUEST_PLAY_VIDEO\":\"點擊確認進入應用\",\"LOGIN_SUCESS\":\"登錄成功\",\"LOGIN_ERROR_COURSE_NOTATSTART\":\"登錄失敗,應用未到時間\",\"LOGIN_ERROR_COURSE_NOTEXIST\":\"登錄失敗,應用不存在\",\"LOGIN_ERROR_COURSE_TIMEOUT\":\"登錄失敗,應用已到時\",\"LOGIN_ERROR_MEDIA_NOTREADY\":\"登錄失敗,應用未準備好,請稍後再試\",\"LOGIN_ERROR_SESSION_EXIST\":\"登錄失敗,已有客戶端連接\",\"LOGIN_ERROR_VALIDUSER\":\"登錄失敗,用戶認證失敗\",\"LOGIN_ERROR_SAFEDOG_NOTFOUND\":\"登錄失敗,系統未找到加密狗\",\"LOGIN_ERROR_SAFEDOG_TIMEOUT\":\"登錄失敗,加密狗已過期\",\"LOGIN_ERROR_UNKNOWN\":\"未知登錄結果\",\"LOGIN_ERROR_EMPTY\":\"登錄結果爲空\",\"APP_LOGIN_TIMOUT\":\"登錄超時\",\"APP_LOGIN_MESSAGE_ERR\":\"登錄返回錯誤消息\",\"CONNECT_TO_APP_SERVER_TIMEOUT\":\"連接應用服務器超時\",\"APP_START_STREAM_TIMEOUT\":\"啓動流媒體超時\",\"LK_LOADING_TIMEOUT\":\"加載時間超過系統設定\",\"NO_OPERATION_TIMEOUT\":\"超過系統設定時間無操作,關閉連接。\",\"RENDER_SERVER_CONNECTED\":\"連接渲染服務器成功\",\"RENDER_SERVER_FAILED\":\"連接渲染服務器失敗\",\"RENDER_SERVER_CLOSE\":\"與渲染服務器連接關閉\",\"RENDER_SERVER_ERROR\":\"與渲染服務器連接出錯\",\"PROXY_SERVER_CONNECTED\":\"連接代理服務器成功\",\"PROXY_SERVER_FAILED\":\"連接代理服務器失敗\",\"PROXY_SERVER_CLOSE\":\"與代理服務器連接關閉\",\"PROXY_SERVER_ERROR\":\"與代理服務器連接出錯\",\"VERSION_CHECK_SUCCESS\":\"版本檢測成功\",\"VERSION_CHECK_FAILED\":\"版本檢測失敗\",\"TASK_SUCCESS\":\"服務器端請求 Task 成功\",\"TASK_ERROR\":\"服務器端請求 Task 出錯\",\"TASK_NOTFOUND\":\"服務器端未發現 Task\",\"TASK_SERVER_ERROR\":\"服務器端錯誤\",\"TASK_APP_WRONGPARAM\":\"應用參數錯誤\",\"TASK_NO_GPU_RESOURCE\":\"服務器端 Task 獲取成功,但是沒有可分配的顯卡\",\"START_SUCCESS\":\"啓動流媒體成功\",\"START_FAILED\":\"啓動流媒體出錯\",\"START_STREAM_PROCESS_START_FAILED\":\"啓動失敗\",\"START_STREAM_PROCESS_START_TIMEOUT\":\"啓動超時\",\"START_STREAM_NOT_STREAMING\":\"未串流\",\"START_STREAM_ENCODER_ERROR\":\"編碼錯誤\",\"RTC_EVENT_PEERCONNECTION_CONNECTED\":\"RTC 連接成功\",\"RTC_EVENT_PEERCONNECTION_CLOSED\":\"RTC 連接關閉\",\"RTC_EVENT_PEERCONNECTION_ERROR\":\"RTC 連接出錯\",\"VIDEO_LOADED\":\"視頻流加載成功\",\"CONNECT_TO_ADMIN\":\"請聯繫管理員\",\"RTC_RETRY_CONNECTION\":\"點對點連接斷開,重試中...\",\"LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT\":\"服務端主動退出\",\"LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT\":\"演示模式已結束\",\"LK_APP_PROCESS_NOTIFI_APP_QUIT\":\"雲端應用斷開,重新啓動中\",\"LK_APP_PROCESS_NOTIFI_APP_QUIT_2\":\"雲端應用退出,請重新進入該應用\",\"WAIT_QUEUE_COUNT\":\"系統已啓用排隊功能,當前隊列前有等待用戶: \"}}");
10272
+ e.exports = JSON.parse("{\"level\":{\"INFO\":\"消息\",\"WARING\":\"警告\",\"ERROR\":\"錯誤\"},\"msg\":{\"CONNECT_WEBRTC\":\"視頻連接中...\",\"ICE_FAILED\":\"當前網絡環境較差,請關閉頁面,稍等片刻重新進入應用。\",\"ICE_SUCCESS\":\"連接成功\",\"WEBRTC_HANGUP\":\"當前網絡環境較差,請關閉頁面,稍等片刻重新進入應用。\",\"CONNECT_WS_ERR\":\"連接服務器失敗\",\"CONNECT_WS_ERR_1\":\"客戶端已啓動\",\"CONNECT_WS_CLOSE\":\"與服務器連接已關閉\",\"APP_LOGIN_ERR_1\":\"客戶端未認證\",\"APP_LOGIN_ERR_2\":\"客戶端重複登錄\",\"CONNECT_APP_ERR\":\"連接應用服務器失敗\",\"CONNECT_APP_ERR2\":\"連接應用服務器超時\",\"SIGNALING_APP_TIMEOUT\":\"連接超時。請檢查網絡或聯繫管理員。\",\"REMOTE_APP_FAILED\":\"啓動雲端應用失敗。請聯繫管理員。\",\"REMOTE_APP_CLOSE\":\"雲端應用已關閉,請重新進入應用。\",\"REFRESH\":\"重新連接中...\",\"COURSE_OVER\":\"應用到時\",\"COURSE_QUIT\":\"確認退出應用\",\"ORIENTATION\":\"橫屏瀏覽效果更佳\",\"REQUEST_LOCK_MOUSE\":\"獨佔鼠標模式請點擊鎖定鼠標按鈕。\",\"LOCK_MOUSE\":\"進入獨佔鼠標模式\",\"PARAM_ERROR\":\"應用參數錯誤\",\"LOAD_CONFIG_FAILED\":\"讀取配置文件失敗\",\"TOKEN_EXPIRED\":\"檢測到 token 已過期,請重新進入。\",\"REQUEST_PLAY_VIDEO\":\"點擊確認進入應用\",\"LOGIN_SUCESS\":\"登錄成功\",\"LOGIN_ERROR_COURSE_NOTATSTART\":\"登錄失敗,應用未到時間\",\"LOGIN_ERROR_COURSE_NOTEXIST\":\"登錄失敗,應用不存在\",\"LOGIN_ERROR_COURSE_TIMEOUT\":\"登錄失敗,應用已到時\",\"LOGIN_ERROR_MEDIA_NOTREADY\":\"登錄失敗,應用未準備好,請稍後再試\",\"LOGIN_ERROR_SESSION_EXIST\":\"登錄失敗,已有客戶端連接\",\"LOGIN_ERROR_VALIDUSER\":\"登錄失敗,用戶認證失敗\",\"LOGIN_ERROR_SAFEDOG_NOTFOUND\":\"登錄失敗,系統未找到加密狗\",\"LOGIN_ERROR_SAFEDOG_TIMEOUT\":\"登錄失敗,加密狗已過期\",\"LOGIN_ERROR_UNKNOWN\":\"未知登錄結果\",\"LOGIN_ERROR_EMPTY\":\"登錄結果爲空\",\"APP_LOGIN_TIMOUT\":\"登錄超時\",\"APP_LOGIN_MESSAGE_ERR\":\"登錄返回錯誤消息\",\"CONNECT_TO_APP_SERVER_TIMEOUT\":\"連接應用服務器超時\",\"APP_START_STREAM_TIMEOUT\":\"啓動流媒體超時\",\"LK_LOADING_TIMEOUT\":\"加載時間超過系統設定\",\"NO_OPERATION_TIMEOUT\":\"超過系統設定時間無操作,關閉連接。\",\"WEB_CLIENT_LOAD_SUCCESS\":\"網頁客戶端載入成功\",\"USER_CAPTURE_FRAME\":\"使用者擷取了一幀渲染畫面\",\"TASK_CREATE_FAILED\":\"建立 Task 失敗\",\"RENDER_SERVER_CONNECTED\":\"連接渲染服務器成功\",\"RENDER_SERVER_FAILED\":\"連接渲染服務器失敗\",\"RENDER_SERVER_CLOSE\":\"與渲染服務器連接關閉\",\"RENDER_SERVER_ERROR\":\"與渲染服務器連接出錯\",\"PROXY_SERVER_CONNECTED\":\"連接代理服務器成功\",\"PROXY_SERVER_FAILED\":\"連接代理服務器失敗\",\"PROXY_SERVER_CLOSE\":\"與代理服務器連接關閉\",\"PROXY_SERVER_ERROR\":\"與代理服務器連接出錯\",\"VERSION_CHECK_SUCCESS\":\"版本檢測成功\",\"VERSION_CHECK_FAILED\":\"版本檢測失敗\",\"TASK_SUCCESS\":\"服務器端請求 Task 成功\",\"TASK_ERROR\":\"服務器端請求 Task 出錯\",\"TASK_NOTFOUND\":\"服務器端未發現 Task\",\"TASK_SERVER_ERROR\":\"服務器端錯誤\",\"TASK_APP_WRONGPARAM\":\"應用參數錯誤\",\"TASK_NO_GPU_RESOURCE\":\"服務器端 Task 獲取成功,但是沒有可分配的顯卡\",\"START_SUCCESS\":\"啓動流媒體成功\",\"START_FAILED\":\"啓動流媒體出錯\",\"START_STREAM_PROCESS_START_FAILED\":\"啓動失敗\",\"START_STREAM_PROCESS_START_TIMEOUT\":\"啓動超時\",\"START_STREAM_NOT_STREAMING\":\"未串流\",\"START_STREAM_ENCODER_ERROR\":\"編碼錯誤\",\"RTC_EVENT_PEERCONNECTION_CONNECTED\":\"RTC 連接成功\",\"RTC_EVENT_PEERCONNECTION_CLOSED\":\"RTC 連接關閉\",\"RTC_EVENT_PEERCONNECTION_ERROR\":\"RTC 連接出錯\",\"VIDEO_LOADED\":\"視頻流加載成功\",\"CONNECT_TO_ADMIN\":\"請聯繫管理員\",\"RTC_RETRY_CONNECTION\":\"點對點連接斷開,重試中...\",\"LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT\":\"服務端主動退出\",\"LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT\":\"演示模式已結束\",\"LK_APP_PROCESS_NOTIFI_APP_QUIT\":\"雲端應用斷開,重新啓動中\",\"LK_APP_PROCESS_NOTIFI_APP_QUIT_2\":\"雲端應用退出,請重新進入該應用\",\"STARTVRSTREAM_START_PROCESS_FAILED\":\"啓動 VR 串流失敗\",\"STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT\":\"啓動 VR 串流驅動逾時\",\"STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR\":\"VR 串流 UDP 連接埠出錯\",\"STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR\":\"VR 串流編碼出錯\",\"DATA_CHANNEL_CLOSE\":\"資料通道已關閉\",\"DATA_CHANNEL_ERROR\":\"資料通道出錯\",\"WAIT_QUEUE_COUNT\":\"系統已啓用排隊功能,當前隊列前有等待用戶: \",\"GET_TASKINFO_FAIL\":\"獲取Task資訊失敗\",\"SERVER_ADDRESS_NOT_SET\":\"服务器地址未設定\",\"AUTHCODE_VERIFICATION_FAILED\":\"sdk授權校驗失敗. 請通過new LarkSR({authCode: id})或initSDKAuthCode設定\"}}");
10170
10273
  },
10171
10274
  4059: function(e, t) {
10172
10275
  t.A = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAQAAABpN6lAAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfiAgEKIzYpoEMCAAACv0lEQVR42u3ca1aDMBCG4anHNUpX065H18g58YeAKYVcyCTfZDLjX2l5Hy8lwUrUciaamj6fsJloppm+0KeBzHfkRiWYaCb3cI9BCZZ859yQBF7+iAS7/NEIDvJHIjjJH4UgkD8CQSRfO0FCvmaCxHytBBn5HoGaZVJmvjaCC/maCC7mayEoyNdAUJjfOwFDfs8ETPm9EjDmewTdXBox5/dGsG51Bj7OJnZcDwQJ+QUATQhulR/fEbnQU9d+/uh8oE8APQaAPgH0GED2EbiXJhFXhxPNWZ8fexnMGQEXyH+v+ygA+BphvezBATia6Y7OxwLAvguWJQ8aALVY3lZ8aADMfoG34MUDtCd4We9LAGhLsNvukAHQjuBtt0cKQBuCg80uOQD1CQ73+iQB1CU42eqUBVCP4HSnVxpAHYLARrc8AH6C4D6/RABegshtjoStbM5t8eTH4iKI3uWRCsBDUOEmV8spJeg8v5RAQX4JgZL8qwSK8j2C5O17Zfm5BMuNEfhNWta5ZUZNNJN7or9sbPO8+ltAB8GVfEUEV/OVEJTkKyAozU8ikLsY4shPIJAKwJUfJZC5IcKZHyGQCMCdHySQB1AjP0AgDaBW/imBLICa+ScEkgBq5x8SyAFokX9AIAWgVf4bgQyAlvk7AgkArfNfCPAAiHyPAA2Ayt8I0AC4fJ8ACQD8U9l/AhwAOH8lQAEIyP8jQAFU+dm3t82hTwA9BoA+AfQYQNHR9+ibp2MTPlrA+8RiU/ft8+LzN4Kn4xzkkkcAwZIv/p8nVCLo7avPTNBrPhNBz/kMBL3nFxJoyC8g0JJ/kUBT/gUCbfmZBD1e9jASaM1PJNCcn0CgPT9CMEJ+gGCU/BOCkfIPCEbL3xGMmO8RjJq/EYybvxKIy/9s+FzfRET0g062sbGxsbGxsbGxsbGxsbGxsRl7fgETo5ol+4Lf1QAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wMi0wMVQxMDozNTo1NCswMDowMEeNiOsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMDItMDFUMTA6MzU6NTQrMDA6MDA20DBXAAAAAElFTkSuQmCC";
@@ -10209,7 +10312,7 @@ var validator = {
10209
10312
  }), "toString");
10210
10313
  },
10211
10314
  4198: function(e) {
10212
- e.exports = JSON.parse("{\"level\":{\"INFO\":\"INFO\",\"WARING\":\"WARING\",\"ERROR\":\"ERROR\"},\"msg\":{\"CONNECT_WEBRTC\":\"Video connection...\",\"ICE_FAILED\":\"The current network environment is poor. Please close the page and wait a moment to re-enter the application.\",\"ICE_SUCCESS\":\"Connection succeeded.\",\"WEBRTC_HANGUP\":\"The current network environment is poor. Please close the page and wait a moment to re-enter the application.\",\"connect CONNECT_WS_ERR\":\"Connection failure.\",\"CONNECT_WS_ERR_1\":\"Client has started.\",\"CONNECT_WS_CLOSE\":\"Connection to server is down.\",\"APP_LOGIN_ERR_1\":\"Client is not authenticated.\",\"APP_LOGIN_ERR_2\":\"Client repeated login.\",\"CONNECT_APP_ERR\":\"Connection to the application server failed.\",\"CONNECT_APP_ERR2\":\"Connection application server timeout.\",\"SIGNALING_APP_TIMEOUT\":\"Connection timed out. Please check the network or contact the administrator.\",\"REMOTE_APP_FAILED\":\"Failed to launch cloud app. Please contact the administrator.\",\"REMOTE_APP_CLOSE\":\"The cloud app is closed. Please re-enter the course.\",\"REFRESH\":\"Reconnecting...\",\"COURSE_OVER\":\"Course time.\",\"COURSE_QUIT\":\"Confirm withdrawal from the course.\",\"ORIENTATION\":\"Horizontal screen browsing is better.\",\"REQUEST_LOCK_MOUSE\":\"For exclusive mouse mode, click the lock mouse button.\",\"LOCK_MOUSE\":\"Enter exclusive mouse mode.\",\"PARAM_ERROR\":\"Application parameter error.\",\"LOAD_CONFIG_FAILED\":\"Failed to read configuration file.\",\"TOKEN_EXPIRED\":\"The token has expired, please re-enter.\",\"REQUEST_PLAY_VIDEO\":\"Click OK to enter the app.\",\"LOGIN_SUCESS\":\"Login successful.\",\"LOGIN_ERROR_COURSE_NOTATSTART\":\"Login failed, course has not arrived.\",\"LOGIN_ERROR_COURSE_NOTEXIST\":\"Login failed, course does not exist.\",\"LOGIN_ERROR_COURSE_TIMEOUT\":\"Login failed, the course has arrived.\",\"LOGIN_ERROR_MEDIA_NOTREADY\":\"Login failed, course is not ready, please try again later.\",\"LOGIN_ERROR_SESSION_EXIST\":\"Login failed, existing client connection.\",\"LOGIN_ERROR_VALIDUSER\":\"Login failed, user authentication failed.\",\"LOGIN_ERROR_SAFEDOG_NOTFOUND\":\"Login failed, the system did not find the dongle\",\"LOGIN_ERROR_SAFEDOG_TIMEOUT\":\"Login failed, dongle has expired.\",\"LOGIN_ERROR_UNKNOWN\":\"Unknown login result.\",\"LOGIN_ERROR_EMPTY\":\"Login result is empty.\",\"APP_LOGIN_TIMOUT\":\"Login timeout.\",\"APP_LOGIN_MESSAGE_ERR\":\"Login returns an error message.\",\"CONNECT_TO_APP_SERVER_TIMEOUT\":\"Connection application server timeout.\",\"APP_START_STREAM_TIMEOUT\":\"Start streaming timeout\",\"LK_LOADING_TIMEOUT\":\"Loading timeout.\",\"NO_OPERATION_TIMEOUT\":\"No operation exceeds the system setting time, close the connection。\",\"RENDER_SERVER_CONNECTED\":\"connect to render server success\",\"RENDER_SERVER_FAILED\":\"connect to render server failed\",\"RENDER_SERVER_CLOSE\":\"connection with render server close\",\"RENDER_SERVER_ERROR\":\"connection with render server error\",\"PROXY_SERVER_CONNECTED\":\"connect to proxy server success\",\"PROXY_SERVER_FAILED\":\"connect to proxy server failed\",\"PROXY_SERVER_CLOSE\":\"connection with proxy server close\",\"PROXY_SERVER_ERROR\":\"connection with proxy server error\",\"VERSION_CHECK_SUCCESS\":\"version check success\",\"VERSION_CHECK_FAILED\":\"version check failed\",\"TASK_SUCCESS\":\"Server get task success\",\"TASK_ERROR\":\"Server get task error\",\"TASK_NOTFOUND\":\"Server get task notfound\",\"TASK_SERVER_ERROR\":\"Server get task server error\",\"TASK_APP_WRONGPARAM\":\"task app wrong param\",\"TASK_NO_GPU_RESOURCE\":\"task no gpu resource\",\"START_SUCCESS\":\"start success\",\"START_FAILED\":\"start failed\",\"START_STREAM_PROCESS_START_FAILED\":\"start stream process failed\",\"START_STREAM_PROCESS_START_TIMEOUT\":\"start stream process timout\",\"START_STREAM_NOT_STREAMING\":\"start stream not streaming\",\"START_STREAM_ENCODER_ERROR\":\"start stream encoder error\",\"RTC_EVENT_PEERCONNECTION_CONNECTED\":\"RTC connect success\",\"RTC_EVENT_PEERCONNECTION_CLOSED\":\"RTC connect close\",\"RTC_EVENT_PEERCONNECTION_ERROR\":\"RTC connect error\",\"VIDEO_LOADED\":\"video loaded\",\"CONNECT_TO_ADMIN\":\"Please connect to adminer\",\"RTC_RETRY_CONNECTION\":\"Peerconnection closed,retrying...\",\"LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT\":\"Sever request logout.\",\"LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT\":\"Taskowner logout.\",\"LK_APP_PROCESS_NOTIFI_APP_QUIT\":\"Cloud application closed. Reopening...\",\"WAIT_QUEUE_COUNT\":\"Wait count before me: \"}}");
10315
+ e.exports = JSON.parse("{\"level\":{\"INFO\":\"INFO\",\"WARING\":\"WARING\",\"ERROR\":\"ERROR\"},\"msg\":{\"CONNECT_WEBRTC\":\"Video connection...\",\"ICE_FAILED\":\"The current network environment is poor. Please close the page and wait a moment to re-enter the application.\",\"ICE_SUCCESS\":\"Connection succeeded.\",\"WEBRTC_HANGUP\":\"The current network environment is poor. Please close the page and wait a moment to re-enter the application.\",\"connect CONNECT_WS_ERR\":\"Connection failure.\",\"CONNECT_WS_ERR_1\":\"Client has started.\",\"CONNECT_WS_CLOSE\":\"Connection to server is down.\",\"APP_LOGIN_ERR_1\":\"Client is not authenticated.\",\"APP_LOGIN_ERR_2\":\"Client repeated login.\",\"CONNECT_APP_ERR\":\"Connection to the application server failed.\",\"CONNECT_APP_ERR2\":\"Connection application server timeout.\",\"SIGNALING_APP_TIMEOUT\":\"Connection timed out. Please check the network or contact the administrator.\",\"REMOTE_APP_FAILED\":\"Failed to launch cloud app. Please contact the administrator.\",\"REMOTE_APP_CLOSE\":\"The cloud app is closed. Please re-enter the course.\",\"REFRESH\":\"Reconnecting...\",\"COURSE_OVER\":\"Course time.\",\"COURSE_QUIT\":\"Confirm withdrawal from the course.\",\"ORIENTATION\":\"Horizontal screen browsing is better.\",\"REQUEST_LOCK_MOUSE\":\"For exclusive mouse mode, click the lock mouse button.\",\"LOCK_MOUSE\":\"Enter exclusive mouse mode.\",\"PARAM_ERROR\":\"Application parameter error.\",\"LOAD_CONFIG_FAILED\":\"Failed to read configuration file.\",\"TOKEN_EXPIRED\":\"The token has expired, please re-enter.\",\"REQUEST_PLAY_VIDEO\":\"Click OK to enter the app.\",\"LOGIN_SUCESS\":\"Login successful.\",\"LOGIN_ERROR_COURSE_NOTATSTART\":\"Login failed, course has not arrived.\",\"LOGIN_ERROR_COURSE_NOTEXIST\":\"Login failed, course does not exist.\",\"LOGIN_ERROR_COURSE_TIMEOUT\":\"Login failed, the course has arrived.\",\"LOGIN_ERROR_MEDIA_NOTREADY\":\"Login failed, course is not ready, please try again later.\",\"LOGIN_ERROR_SESSION_EXIST\":\"Login failed, existing client connection.\",\"LOGIN_ERROR_VALIDUSER\":\"Login failed, user authentication failed.\",\"LOGIN_ERROR_SAFEDOG_NOTFOUND\":\"Login failed, the system did not find the dongle\",\"LOGIN_ERROR_SAFEDOG_TIMEOUT\":\"Login failed, dongle has expired.\",\"LOGIN_ERROR_UNKNOWN\":\"Unknown login result.\",\"LOGIN_ERROR_EMPTY\":\"Login result is empty.\",\"APP_LOGIN_TIMOUT\":\"Login timeout.\",\"APP_LOGIN_MESSAGE_ERR\":\"Login returns an error message.\",\"CONNECT_TO_APP_SERVER_TIMEOUT\":\"Connection application server timeout.\",\"APP_START_STREAM_TIMEOUT\":\"Start streaming timeout\",\"LK_LOADING_TIMEOUT\":\"Loading timeout.\",\"NO_OPERATION_TIMEOUT\":\"No operation exceeds the system setting time, close the connection。\",\"WEB_CLIENT_LOAD_SUCCESS\":\"Web client loaded successfully\",\"USER_CAPTURE_FRAME\":\"User captured a render frame\",\"TASK_CREATE_FAILED\":\"Failed to create task\",\"RENDER_SERVER_CONNECTED\":\"connect to render server success\",\"RENDER_SERVER_FAILED\":\"connect to render server failed\",\"RENDER_SERVER_CLOSE\":\"connection with render server close\",\"RENDER_SERVER_ERROR\":\"connection with render server error\",\"PROXY_SERVER_CONNECTED\":\"connect to proxy server success\",\"PROXY_SERVER_FAILED\":\"connect to proxy server failed\",\"PROXY_SERVER_CLOSE\":\"connection with proxy server close\",\"PROXY_SERVER_ERROR\":\"connection with proxy server error\",\"VERSION_CHECK_SUCCESS\":\"version check success\",\"VERSION_CHECK_FAILED\":\"version check failed\",\"TASK_SUCCESS\":\"Server get task success\",\"TASK_ERROR\":\"Server get task error\",\"TASK_NOTFOUND\":\"Server get task notfound\",\"TASK_SERVER_ERROR\":\"Server get task server error\",\"TASK_APP_WRONGPARAM\":\"task app wrong param\",\"TASK_NO_GPU_RESOURCE\":\"task no gpu resource\",\"START_SUCCESS\":\"start success\",\"START_FAILED\":\"start failed\",\"START_STREAM_PROCESS_START_FAILED\":\"start stream process failed\",\"START_STREAM_PROCESS_START_TIMEOUT\":\"start stream process timout\",\"START_STREAM_NOT_STREAMING\":\"start stream not streaming\",\"START_STREAM_ENCODER_ERROR\":\"start stream encoder error\",\"RTC_EVENT_PEERCONNECTION_CONNECTED\":\"RTC connect success\",\"RTC_EVENT_PEERCONNECTION_CLOSED\":\"RTC connect close\",\"RTC_EVENT_PEERCONNECTION_ERROR\":\"RTC connect error\",\"VIDEO_LOADED\":\"video loaded\",\"CONNECT_TO_ADMIN\":\"Please connect to adminer\",\"RTC_RETRY_CONNECTION\":\"Peerconnection closed,retrying...\",\"LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT\":\"Sever request logout.\",\"LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT\":\"Taskowner logout.\",\"LK_APP_PROCESS_NOTIFI_APP_QUIT\":\"Cloud application closed. Reopening...\",\"STARTVRSTREAM_START_PROCESS_FAILED\":\"Failed to start VR streaming\",\"STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT\":\"Timed out starting the VR streaming driver\",\"STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR\":\"VR streaming UDP port error\",\"STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR\":\"VR streaming encoder error\",\"DATA_CHANNEL_CLOSE\":\"Data channel closed\",\"DATA_CHANNEL_ERROR\":\"Data channel error\",\"WAIT_QUEUE_COUNT\":\"Wait count before me: \",\"GET_TASKINFO_FAIL\":\"Failed to retrieve taskInfo\",\"SERVER_ADDRESS_NOT_SET\":\"Server address not set\",\"AUTHCODE_VERIFICATION_FAILED\":\"SDK authorization verification failed Please set it through new LarkSR ({authCode: id}) or initSDKAuthCode\"}}");
10213
10316
  },
10214
10317
  4202: function(e, t, n) {
10215
10318
  var r = n(917), i = n(8521), a = n(6952);
@@ -11367,7 +11470,7 @@ var validator = {
11367
11470
  };
11368
11471
  },
11369
11472
  6818: function(e) {
11370
- e.exports = JSON.parse("{\"button\":{\"status\":\"连接状态\",\"mouseMode\":\"当前鼠标模式\",\"mouseModeAuto\":\"自动判断\",\"mosueModeLock\":\"全局锁定\",\"scale\":\"铺满\",\"scaleToNormal\":\"还原\",\"lock\":\"全局锁定\",\"fullScreen\":\"全屏\",\"exit\":\"退出\",\"setup\":\"设置\",\"show\":\"显示\",\"hide\":\"隐藏\",\"hideVMouse\":\"隐藏虚拟鼠标\",\"showVMouse\":\"显示虚拟鼠标\",\"hideVKeyboard\":\"隐藏虚拟键盘\",\"showVKeyboard\":\"显示虚拟键盘\",\"playerMode\":\"模式\",\"playerMode_Normal\":\"普通模式\",\"playerMode_Interactive\":\"交互模式\",\"userType\":\"角色\",\"userType_Observer\":\"观看者\",\"userType_Player\":\"操作者\",\"requireNickName\":\"请输入昵称加入观看模式\",\"requireInputChinese\":\"是否需要输入中文?\",\"buttonSubmit\":\"确定\",\"buttonCancle\":\"取消\",\"buttonInput\":\"输入\",\"buttonBack\":\"返回\",\"buttonClose\":\"关闭\"},\"notice\":{\"browserVersion\":\"检测到您当前浏览器内核版本较低,建议升级。是否继续使用?\",\"browserUnsupport\":\"不支持当前浏览器/模式。推荐使用 Chrome 浏览器或使用极速模式。\",\"foundError\":\"出现错误,请向开发人员反馈。错误:\",\"start\":\"开始\",\"remainMin\":\"系统剩余时间:\",\"firstPersion\":\"点击画面锁定鼠标指针。按 ESC 释放鼠标\",\"requestWebsite\":\"请求打开网址:\",\"lockMouse\":\"已锁定鼠标,按 ESC 退出锁定\",\"hideControllerBar\":\"已隐藏控制栏\",\"hideControllerBarShotCut\":\"已隐藏控制栏, Alt + C 键显示控制栏\",\"showControllerBar\":\"已显示控制栏\",\"showControllerBarShotCut\":\"已显示控制栏, Alt + C 隐藏示控制栏\",\"releaseMouse\":\"按 ESC 释放鼠标\",\"badNetwork\":\"当前网络环境差,可能影响体验\",\"INITED\":\"初始化\",\"WEBSOCKET_CHANNEL_OPEN\":\"连接渲染服务器\",\"LOGIN_SUCCESS\":\"登录渲染服务器\",\"RTC_CONNECTED\":\"点对点连接\",\"MEDIA_LOADED\":\"准备云端应用\",\"SYNC_APP\":\"应用同步中,请耐心等待一分钟\",\"RTC_RETRY\":\"检测到点对点连接断开,正在重新连接\",\"APP_RETRY_CONFIRM\":\"检测到云端应用退出,是否关闭?选择确定退出当前页面,选择取消重新启动。\",\"APP_RETRY\":\"云端应用退出,重新启动中\",\"START\":\"点击屏幕开始\",\"PLAY_FAILED\":\"应用启动时间过长,如果长时间未进入,请联系管理员检查云端应用。\",\"LOCK_POINTER_FAILED\":\"锁定鼠标失败,切换为非锁定模式\",\"LOCK_POINTER_FAILED_SECURITY_ERROR\":\"锁定鼠标失败. 请确认使用HTTPS访问.\"}}");
11473
+ e.exports = JSON.parse("{\"button\":{\"status\":\"连接状态\",\"mouseMode\":\"当前鼠标模式\",\"mouseModeAuto\":\"自动判断\",\"mosueModeLock\":\"全局锁定\",\"scale\":\"铺满\",\"scaleToNormal\":\"还原\",\"lock\":\"全局锁定\",\"fullScreen\":\"全屏\",\"exit\":\"退出\",\"setup\":\"设置\",\"show\":\"显示\",\"hide\":\"隐藏\",\"hideVMouse\":\"隐藏虚拟鼠标\",\"showVMouse\":\"显示虚拟鼠标\",\"hideVKeyboard\":\"隐藏虚拟键盘\",\"showVKeyboard\":\"显示虚拟键盘\",\"playerMode\":\"模式\",\"playerMode_Normal\":\"普通模式\",\"playerMode_Interactive\":\"交互模式\",\"userType\":\"角色\",\"userType_Observer\":\"观看者\",\"userType_Player\":\"操作者\",\"requireNickName\":\"请输入昵称加入观看模式\",\"requireInputChinese\":\"是否需要输入中文?\",\"buttonSubmit\":\"确定\",\"buttonCancle\":\"取消\",\"buttonInput\":\"输入\",\"buttonBack\":\"返回\",\"buttonClose\":\"关闭\"},\"notice\":{\"browserVersion\":\"检测到您当前浏览器内核版本较低,建议升级。是否继续使用?\",\"browserUnsupport\":\"不支持当前浏览器/模式。推荐使用 Chrome 浏览器或使用极速模式。\",\"foundError\":\"出现错误,请向开发人员反馈。错误:\",\"start\":\"开始\",\"remainMin\":\"系统剩余时间:\",\"firstPersion\":\"点击画面锁定鼠标指针。按 ESC 释放鼠标\",\"requestWebsite\":\"请求打开网址:\",\"lockMouse\":\"已锁定鼠标,按 ESC 退出锁定\",\"hideControllerBar\":\"已隐藏控制栏\",\"hideControllerBarShotCut\":\"已隐藏控制栏, Alt + C 键显示控制栏\",\"showControllerBar\":\"已显示控制栏\",\"showControllerBarShotCut\":\"已显示控制栏, Alt + C 隐藏示控制栏\",\"releaseMouse\":\"按 ESC 释放鼠标\",\"badNetwork\":\"当前网络环境差,可能影响体验\",\"INITED\":\"初始化\",\"WEBSOCKET_CHANNEL_OPEN\":\"连接渲染服务器\",\"LOGIN_SUCCESS\":\"登录渲染服务器\",\"RTC_CONNECTED\":\"点对点连接\",\"MEDIA_LOADED\":\"准备云端应用\",\"SYNC_APP\":\"应用同步中,请耐心等待一分钟\",\"RTC_RETRY\":\"检测到点对点连接断开,正在重新连接\",\"APP_RETRY_CONFIRM\":\"检测到云端应用退出,是否关闭?选择确定退出当前页面,选择取消重新启动。\",\"APP_RETRY\":\"云端应用退出,重新启动中\",\"START\":\"点击屏幕开始\",\"PLAY_FAILED\":\"应用启动时间过长,如果长时间未进入,请联系管理员检查云端应用。\",\"LOCK_POINTER_FAILED\":\"锁定鼠标失败,切换为非锁定模式\",\"LOCK_POINTER_FAILED_SECURITY_ERROR\":\"鼠标锁定操作频繁,浏览器需等待片刻后才能再次锁定。请稍后点击画面继续操作\",\"OBTAIN_OPERATION_PERMISSION\":\"您已获得操作权限\",\"LOUSE_OPERATION_PERMISSION\":\"您已失去操作权限\"}}");
11371
11474
  },
11372
11475
  6839: function(e, t, n) {
11373
11476
  var r = n(9279), i = n(5636), a = n(6747), o = n(2962), s = n(6279);
@@ -13729,7 +13832,7 @@ var validator = {
13729
13832
  };
13730
13833
  },
13731
13834
  9293: function(e) {
13732
- e.exports = JSON.parse("{\"button\":{\"status\":\"Net status\",\"mouseMode\":\"Mouse Mode\",\"mouseModeAuto\":\"Auto\",\"mosueModeLock\":\"Lock\",\"scale\":\"Zoom\",\"scaleToNormal\":\"Reduction\",\"lock\":\"Locking\",\"fullScreen\":\"Fullscreen\",\"exit\":\"Exit\",\"setup\":\"Setup\",\"show\":\"Show\",\"hide\":\"Hide\",\"hideVMouse\":\"Hide Virtual Mouse\",\"showVMouse\":\"Show Virtual Mouse\",\"hideVKeyboard\":\"Hide Virtual Keyboard\",\"showVKeyboard\":\"Show Virtual Keyboard\",\"playerMode\":\"Player Mode\",\"playerMode_Normal\":\"Normal\",\"playerMode_Interactive\":\"Interactive\",\"userType\":\"User Type\",\"userType_Observer\":\"Observer\",\"userType_Player\":\"Player\",\"requireNickName\":\"Please setup nickname.\",\"requireInputChinese\":\"Need input Chinese?\",\"buttonSubmit\":\"OK\",\"buttonCancle\":\"Cancle\",\"buttonInput\":\"Input\",\"buttonBack\":\"Back\",\"buttonClose\":\"Close\"},\"notice\":{\"browserVersion\":\"It is detected that your current browser kernel version is lower, it is recommended to upgrade. Continue to use?\",\"browserUnsupport\":\"Current browser/mode is not supported. It’s recommended to use Chrome or use speed mode.\",\"foundError\":\"An error has occurred, please give feedback to the developer. error:\",\"start\":\"Start\",\"remainMin\":\"System remaining time:\",\"firstPersion\":\"Click on the screen to enter the first person mode, and the angle of view moves with the mouse. Press Esc to display the mouse again.\",\"requestWebsite\":\"Request to open the URL:\",\"lockMouse\":\"Mouse is locked, press ESC to exit lock.\",\"hideControllerBar\":\"Hidden control bar.\",\"hideControllerBarShotCut\":\"Control bar is hidden, Alt + C key displays control bar.\",\"showControllerBar\":\"Control bar displayed.\",\"showControllerBarShotCut\":\"Control bar is displayed, Alt + C hides control bar.\",\"releaseMouse\":\"Press ESC release mouse.\",\"badNetwork\":\"The current network environment is poor and may affect the experience.\",\"INITED\":\"inited\",\"WEBSOCKET_CHANNEL_OPEN\":\"websocket channel open\",\"LOGIN_SUCCESS\":\"login render server\",\"RTC_CONNECTED\":\"peerconnection connected\",\"MEDIA_LOADED\":\"prepare remote app\",\"SYNC_APP\":\"Sync remote app, please wait one min.\",\"RTC_RETRY\":\"Peerconnection has closed. Retrying.\",\"APP_RETRY_CONFIRM\":\"Cloud application closed. Quit now?\",\"APP_RETRY\":\"Cloud application closed. Reopening...\",\"START\":\"Click to Start\",\"PLAY_FAILED\":\"Cloud app maybe not ready? Please connect manager to check server.\",\"LOCK_POINTER_FAILED\":\"lock pointer failed switch to unlock mode.\",\"LOCK_POINTER_FAILED_SECURITY_ERROR\":\"lock pointer failed switch to unlock mode. please check https is enable.\"}}");
13835
+ e.exports = JSON.parse("{\"button\":{\"status\":\"Net status\",\"mouseMode\":\"Mouse Mode\",\"mouseModeAuto\":\"Auto\",\"mosueModeLock\":\"Lock\",\"scale\":\"Zoom\",\"scaleToNormal\":\"Reduction\",\"lock\":\"Locking\",\"fullScreen\":\"Fullscreen\",\"exit\":\"Exit\",\"setup\":\"Setup\",\"show\":\"Show\",\"hide\":\"Hide\",\"hideVMouse\":\"Hide Virtual Mouse\",\"showVMouse\":\"Show Virtual Mouse\",\"hideVKeyboard\":\"Hide Virtual Keyboard\",\"showVKeyboard\":\"Show Virtual Keyboard\",\"playerMode\":\"Player Mode\",\"playerMode_Normal\":\"Normal\",\"playerMode_Interactive\":\"Interactive\",\"userType\":\"User Type\",\"userType_Observer\":\"Observer\",\"userType_Player\":\"Player\",\"requireNickName\":\"Please setup nickname.\",\"requireInputChinese\":\"Need input Chinese?\",\"buttonSubmit\":\"OK\",\"buttonCancle\":\"Cancle\",\"buttonInput\":\"Input\",\"buttonBack\":\"Back\",\"buttonClose\":\"Close\"},\"notice\":{\"browserVersion\":\"It is detected that your current browser kernel version is lower, it is recommended to upgrade. Continue to use?\",\"browserUnsupport\":\"Current browser/mode is not supported. It’s recommended to use Chrome or use speed mode.\",\"foundError\":\"An error has occurred, please give feedback to the developer. error:\",\"start\":\"Start\",\"remainMin\":\"System remaining time:\",\"firstPersion\":\"Click on the screen to enter the first person mode, and the angle of view moves with the mouse. Press Esc to display the mouse again.\",\"requestWebsite\":\"Request to open the URL:\",\"lockMouse\":\"Mouse is locked, press ESC to exit lock.\",\"hideControllerBar\":\"Hidden control bar.\",\"hideControllerBarShotCut\":\"Control bar is hidden, Alt + C key displays control bar.\",\"showControllerBar\":\"Control bar displayed.\",\"showControllerBarShotCut\":\"Control bar is displayed, Alt + C hides control bar.\",\"releaseMouse\":\"Press ESC release mouse.\",\"badNetwork\":\"The current network environment is poor and may affect the experience.\",\"INITED\":\"inited\",\"WEBSOCKET_CHANNEL_OPEN\":\"websocket channel open\",\"LOGIN_SUCCESS\":\"login render server\",\"RTC_CONNECTED\":\"peerconnection connected\",\"MEDIA_LOADED\":\"prepare remote app\",\"SYNC_APP\":\"Sync remote app, please wait one min.\",\"RTC_RETRY\":\"Peerconnection has closed. Retrying.\",\"APP_RETRY_CONFIRM\":\"Cloud application closed. Quit now?\",\"APP_RETRY\":\"Cloud application closed. Reopening...\",\"START\":\"Click to Start\",\"PLAY_FAILED\":\"Cloud app maybe not ready? Please connect manager to check server.\",\"LOCK_POINTER_FAILED\":\"lock pointer failed switch to unlock mode.\",\"LOCK_POINTER_FAILED_SECURITY_ERROR\":\"The mouse locking is happening frequently, and the browser needs a moment before it can lock again. Please click on the screen to continue shortly.\",\"OBTAIN_OPERATION_PERMISSION\":\"You have obtained operational permissions\",\"LOUSE_OPERATION_PERMISSION\":\"You have lost the operation permission\"}}");
13733
13836
  },
13734
13837
  9323: function(e, t, n) {
13735
13838
  var r = n(5589);
@@ -13780,7 +13883,7 @@ var validator = {
13780
13883
  e.exports = JSON.parse("{\"name\":\"操作說明\",\"session\":[{\"name\":\"本地操作\",\"items\":[{\"name\":\"開啟或隱藏控制欄:\",\"des\":\"單指在屏幕畫逆時針圓弧(半個笑臉)可開啓或隱藏控制欄。\"}]},{\"name\":\"鼠標鍵盤操作模擬\",\"items\":[{\"name\":\"移動鼠標:\",\"des\":\"單指在屏幕上滑動表示移動鼠標。\"},{\"name\":\"左鍵單擊:\",\"des\":\"單指輕點屏幕表示鼠標左鍵單擊。\"},{\"name\":\"拖拽操作:\",\"des\":\"單指長按屏幕,出現鼠標按下提示後拖動即可。單指擡起屏幕出現鼠標擡起提示拖動完成。\"},{\"name\":\"上下文菜單/鼠標右鍵:\",\"des\":\"雙指單擊,模擬鼠標右鍵按下。\"},{\"name\":\"鼠標右鍵按下/拖動:\",\"des\":\"雙指長按屏幕,出現鼠標右鍵按下提示後拖拽即可。雙指離開屏幕鼠標右鍵擡起。\"},{\"name\":\"鼠標滾輪/中鍵滾動:\",\"des\":\"雙指同時向上/下劃,模擬鼠標滾輪\"},{\"name\":\"鼠標滾輪按下/拖動:\",\"des\":\"三指長按屏幕,出現鼠標中鍵按下提示後拖拽即可。三指離開屏幕鼠標中鍵擡起。\"}]}]}");
13781
13884
  },
13782
13885
  9819: function(e) {
13783
- e.exports = JSON.parse("{\"level\":{\"INFO\":\"消息\",\"WARING\":\"警告\",\"ERROR\":\"错误\"},\"msg\":{\"CONNECT_WEBRTC\":\"视频连接中...\",\"ICE_FAILED\":\"当前网络环境较差,请关闭页面,稍等片刻重新进入应用。\",\"ICE_SUCCESS\":\"连接成功\",\"WEBRTC_HANGUP\":\"当前网络环境较差,请关闭页面,稍等片刻重新进入应用。\",\"CONNECT_WS_ERR\":\"连接服务器失败\",\"CONNECT_WS_ERR_1\":\"客户端已启动\",\"CONNECT_WS_CLOSE\":\"与服务器连接已关闭\",\"APP_LOGIN_ERR_1\":\"客户端未认证\",\"APP_LOGIN_ERR_2\":\"客户端重复登录\",\"CONNECT_APP_ERR\":\"连接应用服务器失败\",\"CONNECT_APP_ERR2\":\"连接应用服务器超时\",\"SIGNALING_APP_TIMEOUT\":\"连接超时。请检查网络或联系管理员。\",\"REMOTE_APP_FAILED\":\"启动云端应用失败。请联系管理员。\",\"REMOTE_APP_CLOSE\":\"云端应用已关闭,请重新进入应用。\",\"REFRESH\":\"重新连接中...\",\"COURSE_OVER\":\"应用到时\",\"COURSE_QUIT\":\"确认退出应用\",\"ORIENTATION\":\"横屏浏览效果更佳\",\"REQUEST_LOCK_MOUSE\":\"独占鼠标模式请点击锁定鼠标按钮。\",\"LOCK_MOUSE\":\"进入独占鼠标模式\",\"PARAM_ERROR\":\"应用参数错误\",\"LOAD_CONFIG_FAILED\":\"读取配置文件失败\",\"TOKEN_EXPIRED\":\"检测到 token 已过期,请重新进入。\",\"REQUEST_PLAY_VIDEO\":\"点击确认进入应用\",\"LOGIN_SUCESS\":\"登录成功\",\"LOGIN_ERROR_COURSE_NOTATSTART\":\"登录失败,应用未到时间\",\"LOGIN_ERROR_COURSE_NOTEXIST\":\"登录失败,应用不存在\",\"LOGIN_ERROR_COURSE_TIMEOUT\":\"登录失败,应用已到时\",\"LOGIN_ERROR_MEDIA_NOTREADY\":\"登录失败,应用未准备好,请稍后再试\",\"LOGIN_ERROR_SESSION_EXIST\":\"登录失败,已有客户端连接\",\"LOGIN_ERROR_VALIDUSER\":\"登录失败,用户认证失败\",\"LOGIN_ERROR_SAFEDOG_NOTFOUND\":\"登录失败,系统未找到加密狗\",\"LOGIN_ERROR_SAFEDOG_TIMEOUT\":\"登录失败,加密狗已过期\",\"LOGIN_ERROR_UNKNOWN\":\"未知登录结果\",\"LOGIN_ERROR_EMPTY\":\"登录结果为空\",\"APP_LOGIN_TIMOUT\":\"登录超时\",\"APP_LOGIN_MESSAGE_ERR\":\"登录返回错误消息\",\"CONNECT_TO_APP_SERVER_TIMEOUT\":\"连接应用服务器超时\",\"APP_START_STREAM_TIMEOUT\":\"启动流媒体超时\",\"LK_LOADING_TIMEOUT\":\"加载时间超过系统设定\",\"NO_OPERATION_TIMEOUT\":\"超过系统设定时间无操作,关闭连接。\",\"RENDER_SERVER_CONNECTED\":\"连接渲染服务器成功\",\"RENDER_SERVER_FAILED\":\"连接渲染服务器失败\",\"RENDER_SERVER_CLOSE\":\"与渲染服务器连接关闭\",\"RENDER_SERVER_ERROR\":\"与渲染服务器连接出错\",\"PROXY_SERVER_CONNECTED\":\"连接代理服务器成功\",\"PROXY_SERVER_FAILED\":\"连接代理服务器失败\",\"PROXY_SERVER_CLOSE\":\"与代理服务器连接关闭\",\"PROXY_SERVER_ERROR\":\"与代理服务器连接出错\",\"VERSION_CHECK_SUCCESS\":\"版本检测成功\",\"VERSION_CHECK_FAILED\":\"版本检测失败\",\"TASK_SUCCESS\":\"服务器端请求 Task 成功\",\"TASK_ERROR\":\"服务器端请求 Task 出错\",\"TASK_NOTFOUND\":\"服务器端未发现 Task\",\"TASK_SERVER_ERROR\":\"服务器端错误\",\"TASK_APP_WRONGPARAM\":\"应用参数错误,请检查应用实际启动路径和参数\",\"TASK_NO_GPU_RESOURCE\":\"服务器端 Task 获取成功,但是没有可分配的显卡\",\"START_SUCCESS\":\"启动流媒体成功\",\"START_FAILED\":\"启动流媒体出错\",\"START_STREAM_PROCESS_START_FAILED\":\"启动失败\",\"START_STREAM_PROCESS_START_TIMEOUT\":\"启动超时\",\"START_STREAM_NOT_STREAMING\":\"未串流\",\"START_STREAM_ENCODER_ERROR\":\"编码错误\",\"RTC_EVENT_PEERCONNECTION_CONNECTED\":\"RTC 连接成功\",\"RTC_EVENT_PEERCONNECTION_CLOSED\":\"RTC 连接关闭\",\"RTC_EVENT_PEERCONNECTION_ERROR\":\"RTC 连接出错\",\"VIDEO_LOADED\":\"视频流加载成功\",\"CONNECT_TO_ADMIN\":\"请联系管理员\",\"RTC_RETRY_CONNECTION\":\"点对点连接断开,重试中...\",\"LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT\":\"服务端主动退出\",\"LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT\":\"演示模式已结束\",\"LK_APP_PROCESS_NOTIFI_APP_QUIT\":\"云端应用断开,重新启动中\",\"WAIT_QUEUE_COUNT\":\"系统已启用排队功能,当前队列前有等待用户: \"}}");
13886
+ e.exports = JSON.parse("{\"level\":{\"INFO\":\"消息\",\"WARING\":\"警告\",\"ERROR\":\"错误\"},\"msg\":{\"CONNECT_WEBRTC\":\"视频连接中...\",\"ICE_FAILED\":\"当前网络环境较差,请关闭页面,稍等片刻重新进入应用。\",\"ICE_SUCCESS\":\"连接成功\",\"WEBRTC_HANGUP\":\"当前网络环境较差,请关闭页面,稍等片刻重新进入应用。\",\"CONNECT_WS_ERR\":\"连接服务器失败\",\"CONNECT_WS_ERR_1\":\"客户端已启动\",\"CONNECT_WS_CLOSE\":\"与服务器连接已关闭\",\"APP_LOGIN_ERR_1\":\"客户端未认证\",\"APP_LOGIN_ERR_2\":\"客户端重复登录\",\"CONNECT_APP_ERR\":\"连接应用服务器失败\",\"CONNECT_APP_ERR2\":\"连接应用服务器超时\",\"SIGNALING_APP_TIMEOUT\":\"连接超时。请检查网络或联系管理员。\",\"REMOTE_APP_FAILED\":\"启动云端应用失败。请联系管理员。\",\"REMOTE_APP_CLOSE\":\"云端应用已关闭,请重新进入应用。\",\"REFRESH\":\"重新连接中...\",\"COURSE_OVER\":\"应用到时\",\"COURSE_QUIT\":\"确认退出应用\",\"ORIENTATION\":\"横屏浏览效果更佳\",\"REQUEST_LOCK_MOUSE\":\"独占鼠标模式请点击锁定鼠标按钮。\",\"LOCK_MOUSE\":\"进入独占鼠标模式\",\"PARAM_ERROR\":\"应用参数错误\",\"LOAD_CONFIG_FAILED\":\"读取配置文件失败\",\"TOKEN_EXPIRED\":\"检测到 token 已过期,请重新进入。\",\"REQUEST_PLAY_VIDEO\":\"点击确认进入应用\",\"LOGIN_SUCESS\":\"登录成功\",\"LOGIN_ERROR_COURSE_NOTATSTART\":\"登录失败,应用未到时间\",\"LOGIN_ERROR_COURSE_NOTEXIST\":\"登录失败,应用不存在\",\"LOGIN_ERROR_COURSE_TIMEOUT\":\"登录失败,应用已到时\",\"LOGIN_ERROR_MEDIA_NOTREADY\":\"登录失败,应用未准备好,请稍后再试\",\"LOGIN_ERROR_SESSION_EXIST\":\"登录失败,已有客户端连接\",\"LOGIN_ERROR_VALIDUSER\":\"登录失败,用户认证失败\",\"LOGIN_ERROR_SAFEDOG_NOTFOUND\":\"登录失败,系统未找到加密狗\",\"LOGIN_ERROR_SAFEDOG_TIMEOUT\":\"登录失败,加密狗已过期\",\"LOGIN_ERROR_UNKNOWN\":\"未知登录结果\",\"LOGIN_ERROR_EMPTY\":\"登录结果为空\",\"APP_LOGIN_TIMOUT\":\"登录超时\",\"APP_LOGIN_MESSAGE_ERR\":\"登录返回错误消息\",\"CONNECT_TO_APP_SERVER_TIMEOUT\":\"连接应用服务器超时\",\"APP_START_STREAM_TIMEOUT\":\"启动流媒体超时\",\"LK_LOADING_TIMEOUT\":\"加载时间超过系统设定\",\"NO_OPERATION_TIMEOUT\":\"超过系统设定时间无操作,关闭连接。\",\"WEB_CLIENT_LOAD_SUCCESS\":\"网页客户端加载成功\",\"USER_CAPTURE_FRAME\":\"用户截取了一帧渲染画面\",\"TASK_CREATE_FAILED\":\"创建任务失败\",\"RENDER_SERVER_CONNECTED\":\"连接渲染服务器成功\",\"RENDER_SERVER_FAILED\":\"连接渲染服务器失败\",\"RENDER_SERVER_CLOSE\":\"与渲染服务器连接关闭\",\"RENDER_SERVER_ERROR\":\"与渲染服务器连接出错\",\"PROXY_SERVER_CONNECTED\":\"连接代理服务器成功\",\"PROXY_SERVER_FAILED\":\"连接代理服务器失败\",\"PROXY_SERVER_CLOSE\":\"与代理服务器连接关闭\",\"PROXY_SERVER_ERROR\":\"与代理服务器连接出错\",\"VERSION_CHECK_SUCCESS\":\"版本检测成功\",\"VERSION_CHECK_FAILED\":\"版本检测失败\",\"TASK_SUCCESS\":\"服务器端请求 Task 成功\",\"TASK_ERROR\":\"服务器端请求 Task 出错\",\"TASK_NOTFOUND\":\"服务器端未发现 Task\",\"TASK_SERVER_ERROR\":\"服务器端错误\",\"TASK_APP_WRONGPARAM\":\"应用参数错误,请检查应用实际启动路径和参数\",\"TASK_NO_GPU_RESOURCE\":\"服务器端 Task 获取成功,但是没有可分配的显卡\",\"START_SUCCESS\":\"启动流媒体成功\",\"START_FAILED\":\"启动流媒体出错\",\"START_STREAM_PROCESS_START_FAILED\":\"启动失败\",\"START_STREAM_PROCESS_START_TIMEOUT\":\"启动超时\",\"START_STREAM_NOT_STREAMING\":\"未串流\",\"START_STREAM_ENCODER_ERROR\":\"编码错误\",\"RTC_EVENT_PEERCONNECTION_CONNECTED\":\"RTC 连接成功\",\"RTC_EVENT_PEERCONNECTION_CLOSED\":\"RTC 连接关闭\",\"RTC_EVENT_PEERCONNECTION_ERROR\":\"RTC 连接出错\",\"VIDEO_LOADED\":\"视频流加载成功\",\"CONNECT_TO_ADMIN\":\"请联系管理员\",\"RTC_RETRY_CONNECTION\":\"点对点连接断开,重试中...\",\"LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT\":\"服务端主动退出\",\"LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT\":\"演示模式已结束\",\"LK_APP_PROCESS_NOTIFI_APP_QUIT\":\"云端应用断开,重新启动中\",\"STARTVRSTREAM_START_PROCESS_FAILED\":\"启动 VR 流媒体失败\",\"STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT\":\"启动 VR 流媒体驱动超时\",\"STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR\":\"启动 VR 流媒体 UDP 端口出错\",\"STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR\":\"启动 VR 流媒体编码出错\",\"DATA_CHANNEL_CLOSE\":\"数据通道已关闭\",\"DATA_CHANNEL_ERROR\":\"数据通道出错\",\"WAIT_QUEUE_COUNT\":\"系统已启用排队功能,当前队列前有等待用户: \",\"GET_TASKINFO_FAIL\":\"获取Task信息失败\",\"SERVER_ADDRESS_NOT_SET\":\"服务器地址未设置\",\"AUTHCODE_VERIFICATION_FAILED\":\"sdk 授权校验失败. 请通过 new LarkSR({authCode: id}) 或 initSDKAuthCode 设置\"}}");
13784
13887
  },
13785
13888
  9966: function(e) {
13786
13889
  e.exports = function(e, t) {
@@ -14242,6 +14345,15 @@ var validator = {
14242
14345
  get noOperationTimeout() {
14243
14346
  return this.getMessage("NO_OPERATION_TIMEOUT");
14244
14347
  }
14348
+ get WEB_CLIENT_LOAD_SUCCESS() {
14349
+ return this.getMessage("WEB_CLIENT_LOAD_SUCCESS");
14350
+ }
14351
+ get USER_CAPTURE_FRAME() {
14352
+ return this.getMessage("USER_CAPTURE_FRAME");
14353
+ }
14354
+ get TASK_CREATE_FAILED() {
14355
+ return this.getMessage("TASK_CREATE_FAILED");
14356
+ }
14245
14357
  get RENDER_SERVER_CONNECTED() {
14246
14358
  return this.getMessage("RENDER_SERVER_CONNECTED");
14247
14359
  }
@@ -14335,12 +14447,39 @@ var validator = {
14335
14447
  get LK_APP_PROCESS_NOTIFI_APP_QUIT() {
14336
14448
  return this.getMessage("LK_APP_PROCESS_NOTIFI_APP_QUIT");
14337
14449
  }
14450
+ get STARTVRSTREAM_START_PROCESS_FAILED() {
14451
+ return this.getMessage("STARTVRSTREAM_START_PROCESS_FAILED");
14452
+ }
14453
+ get STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT() {
14454
+ return this.getMessage("STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT");
14455
+ }
14456
+ get STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR() {
14457
+ return this.getMessage("STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR");
14458
+ }
14459
+ get STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR() {
14460
+ return this.getMessage("STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR");
14461
+ }
14462
+ get DATA_CHANNEL_CLOSE() {
14463
+ return this.getMessage("DATA_CHANNEL_CLOSE");
14464
+ }
14465
+ get DATA_CHANNEL_ERROR() {
14466
+ return this.getMessage("DATA_CHANNEL_ERROR");
14467
+ }
14338
14468
  get LK_LOADING_TIMEOUT() {
14339
14469
  return this.getMessage("LK_LOADING_TIMEOUT");
14340
14470
  }
14341
14471
  get WAIT_QUEUE_COUNT() {
14342
14472
  return this.getMessage("WAIT_QUEUE_COUNT");
14343
14473
  }
14474
+ get GET_TASKINFO_FAIL() {
14475
+ return this.getMessage("GET_TASKINFO_FAIL");
14476
+ }
14477
+ get SERVER_ADDRESS_NOT_SET() {
14478
+ return this.getMessage("SERVER_ADDRESS_NOT_SET");
14479
+ }
14480
+ get AUTHCODE_VERIFICATION_FAILED() {
14481
+ return this.getMessage("AUTHCODE_VERIFICATION_FAILED");
14482
+ }
14344
14483
  }(), p.mGestureIns = new class extends l {
14345
14484
  constructor() {
14346
14485
  super(...arguments), this.mType = "gestureIns";
@@ -14523,13 +14662,34 @@ var validator = {
14523
14662
  get LOCK_POINTER_FAILED_SECURITY_ERROR() {
14524
14663
  return this.getNotice("LOCK_POINTER_FAILED_SECURITY_ERROR");
14525
14664
  }
14665
+ get OBTAIN_OPERATION_PERMISSION() {
14666
+ return this.getNotice("OBTAIN_OPERATION_PERMISSION");
14667
+ }
14668
+ get LOUSE_OPERATION_PERMISSION() {
14669
+ return this.getNotice("LOUSE_OPERATION_PERMISSION");
14670
+ }
14526
14671
  }(), function(e) {
14527
14672
  e[e.LK_WEB_CLIENT_LOAD_SUCCESS = 1] = "LK_WEB_CLIENT_LOAD_SUCCESS", e[e.LK_TASK_CREATE_SUCCESS = 10] = "LK_TASK_CREATE_SUCCESS", e[e.LK_TASK_CREATE_FAILED = 11] = "LK_TASK_CREATE_FAILED", e[e.LK_RESOURCE_NOT_ENOUGH = 12] = "LK_RESOURCE_NOT_ENOUGH", e[e.LK_TASK_SYNC_APP = 20] = "LK_TASK_SYNC_APP", e[e.LK_TASK_SYNC_APP_FAILED = 21] = "LK_TASK_SYNC_APP_FAILED", e[e.LK_RENDER_SERVER_CONNECTED = 100] = "LK_RENDER_SERVER_CONNECTED", e[e.LK_RENDER_SERVER_FAILED = 101] = "LK_RENDER_SERVER_FAILED", e[e.LK_RENDER_SERVER_CLOSE = 102] = "LK_RENDER_SERVER_CLOSE", e[e.LK_RENDER_SERVER_ERROR = 103] = "LK_RENDER_SERVER_ERROR", e[e.LK_PROXY_SERVER_CONNECTED = 200] = "LK_PROXY_SERVER_CONNECTED", e[e.LK_PROXY_SERVER_FAILED = 201] = "LK_PROXY_SERVER_FAILED", e[e.LK_PROXY_SERVER_CLOSE = 202] = "LK_PROXY_SERVER_CLOSE", e[e.LK_PROXY_SERVER_ERROR = 203] = "LK_PROXY_SERVER_ERROR", e[e.LK_VERSION_CHECK_SUCCESS = 300] = "LK_VERSION_CHECK_SUCCESS", e[e.LK_VERSION_CHECK_FAILED = 301] = "LK_VERSION_CHECK_FAILED", e[e.LK_TASK_SUCCESS = 400] = "LK_TASK_SUCCESS", e[e.LK_TASK_NOTFOUND = 401] = "LK_TASK_NOTFOUND", e[e.LK_TASK_SERVER_ERROR = 402] = "LK_TASK_SERVER_ERROR", e[e.LK_TASK_APP_WRONGPARAM = 403] = "LK_TASK_APP_WRONGPARAM", e[e.LK_TASK_NO_GPU_RESOURCE = 404] = "LK_TASK_NO_GPU_RESOURCE", e[e.LK_START_STREAM_SUCCESS = 500] = "LK_START_STREAM_SUCCESS", e[e.LK_START_STREAM_PROCESS_START_FAILED = 501] = "LK_START_STREAM_PROCESS_START_FAILED", e[e.LK_START_STREAM_PROCESS_START_TIMEOUT = 502] = "LK_START_STREAM_PROCESS_START_TIMEOUT", e[e.LK_START_STREAM_NOT_STREAMING = 503] = "LK_START_STREAM_NOT_STREAMING", e[e.LK_START_STREAM_ENCODER_ERROR = 504] = "LK_START_STREAM_ENCODER_ERROR", e[e.LK_RTC_EVENT_PEERCONNECTION_CONNECTED = 600] = "LK_RTC_EVENT_PEERCONNECTION_CONNECTED", e[e.LK_RTC_EVENT_PEERCONNECTION_CLOSED = 601] = "LK_RTC_EVENT_PEERCONNECTION_CLOSED", e[e.LK_RTC_EVENT_PEERCONNECTION_ERROR = 602] = "LK_RTC_EVENT_PEERCONNECTION_ERROR", e[e.LK_RTC_EVENT_PEERCONNECTION_CREATE_FAILED = 603] = "LK_RTC_EVENT_PEERCONNECTION_CREATE_FAILED", e[e.LK_RTC_EVENT_PEERCONNECTION_STATE = 610] = "LK_RTC_EVENT_PEERCONNECTION_STATE", e[e.LK_RTC_EVENT_PEERCONNECTION_RETRY = 611] = "LK_RTC_EVENT_PEERCONNECTION_RETRY", e[e.LK_VIDEO_LOADED = 700] = "LK_VIDEO_LOADED", e[e.LK_VIDEO_PLAY_FAILED = 701] = "LK_VIDEO_PLAY_FAILED", e[e.LK_GOT_REMOTE_STREAM = 710] = "LK_GOT_REMOTE_STREAM", e[e.LK_VIDEO_PLAY_SUCCSS = 711] = "LK_VIDEO_PLAY_SUCCSS", e[e.LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT = 800] = "LK_NOTIFY_CLIENT_LOGOUT_PLAYER_LOGOUT", e[e.LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT = 801] = "LK_NOTIFY_CLIENT_LOGOUT_TASKOWNER_LOGOUT", e[e.LK_APP_PROCESS_NOTIFI_APP_QUIT = 900] = "LK_APP_PROCESS_NOTIFI_APP_QUIT", e[e.LK_NO_OPERATION_TIMEOUT = 901] = "LK_NO_OPERATION_TIMEOUT", e[e.LK_LOADING_TIMEOUT = 902] = "LK_LOADING_TIMEOUT", e[e.LK_APP_RESIZE = 910] = "LK_APP_RESIZE", e[e.LK_APP_MOUSE_MODE = 911] = "LK_APP_MOUSE_MODE", e[e.LK_APP_PLAER_LIST = 912] = "LK_APP_PLAER_LIST", e[e.LK_APP_REQUEST_TEXT = 913] = "LK_APP_REQUEST_TEXT", e[e.LK_APP_CURSOR_STYLE = 914] = "LK_APP_CURSOR_STYLE", e[e.LK_USER_REQUEST_QUIT = 920] = "LK_USER_REQUEST_QUIT", e[e.LK_UI_RESIZE = 930] = "LK_UI_RESIZE", e[e.LK_STARTVRSTREAM_SUCCESS = 1e3] = "LK_STARTVRSTREAM_SUCCESS", e[e.LK_STARTVRSTREAM_START_PROCESS_FAILED = 1001] = "LK_STARTVRSTREAM_START_PROCESS_FAILED", e[e.LK_STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT = 1002] = "LK_STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT", e[e.LK_STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR = 1003] = "LK_STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR", e[e.LK_STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR = 1004] = "LK_STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR", e[e.LK_WEBCLIENT_NOTIFY_ALERT = 1100] = "LK_WEBCLIENT_NOTIFY_ALERT", e[e.LK_WEBCLIENT_NOTIFY_CONFIRM = 1101] = "LK_WEBCLIENT_NOTIFY_CONFIRM", e[e.LK_WEBCLIENT_TOAST_MSG = 1102] = "LK_WEBCLIENT_TOAST_MSG", e[e.LK_USER_CAPTURE_FRAME = 2e3] = "LK_USER_CAPTURE_FRAME", e[e.LK_USER_CAPTURE_FRAME_WITH_EXTRA_DATA = 2001] = "LK_USER_CAPTURE_FRAME_WITH_EXTRA_DATA", e[e.LK_REQUEST_CAPTURE_FRAME = 3e3] = "LK_REQUEST_CAPTURE_FRAME", e[e.LK_REQUEST_CAPTURE_FRAME_WITH_EXTRA_DATA = 3001] = "LK_REQUEST_CAPTURE_FRAME_WITH_EXTRA_DATA", e[e.LK_IFRAME_POSTER_OPERATE_MOUSE_MOVE = 1e4] = "LK_IFRAME_POSTER_OPERATE_MOUSE_MOVE", e[e.LK_IFRAME_POSTER_OPERATE_MOUSE_DOWN = 10001] = "LK_IFRAME_POSTER_OPERATE_MOUSE_DOWN", e[e.LK_IFRAME_POSTER_OPERATE_MOUSE_UP = 10002] = "LK_IFRAME_POSTER_OPERATE_MOUSE_UP", e[e.LK_IFRAME_POSTER_OPERATE_MOUSE_WHEEL = 10003] = "LK_IFRAME_POSTER_OPERATE_MOUSE_WHEEL", e[e.LK_IFRAME_POSTER_OPERATE_KEY_DOWN = 10010] = "LK_IFRAME_POSTER_OPERATE_KEY_DOWN", e[e.LK_IFRAME_POSTER_OPERATE_KEY_UP = 10011] = "LK_IFRAME_POSTER_OPERATE_KEY_UP", e[e.LK_IFRAME_POSTER_OPERATE_TOUCH_DOWN = 10020] = "LK_IFRAME_POSTER_OPERATE_TOUCH_DOWN", e[e.LK_IFRAME_POSTER_OPERATE_TOUCH_MOVE = 10021] = "LK_IFRAME_POSTER_OPERATE_TOUCH_MOVE", e[e.LK_IFRAME_POSTER_OPERATE_TOUCH_UP = 10022] = "LK_IFRAME_POSTER_OPERATE_TOUCH_UP", e[e.LK_IFRAME_POSTER_OPERATE_GAMEPAD_BUTTON_DOWN = 10030] = "LK_IFRAME_POSTER_OPERATE_GAMEPAD_BUTTON_DOWN", e[e.LK_IFRAME_POSTER_OPERATE_GAMEPAD_BUTTON_UP = 10031] = "LK_IFRAME_POSTER_OPERATE_GAMEPAD_BUTTON_UP", e[e.LK_IFRAME_POSTER_OPERATE_GAMEPAD_TRIGGER_VALUE = 10032] = "LK_IFRAME_POSTER_OPERATE_GAMEPAD_TRIGGER_VALUE", e[e.LK_IFRAME_POSTER_OPERATE_GAMEPAD_JOYSTICK_STATES = 10033] = "LK_IFRAME_POSTER_OPERATE_GAMEPAD_JOYSTICK_STATES", e[e.LK_IFRAME_POSTER_OPENAUDIO_INPUT = 10040] = "LK_IFRAME_POSTER_OPENAUDIO_INPUT", e[e.LK_IFRAME_POSTER_CLOSE_AUDIO_INPUT = 10041] = "LK_IFRAME_POSTER_CLOSE_AUDIO_INPUT", e[e.LK_IFRAME_POSTER_FUNC_MOUSE_MODE = 10100] = "LK_IFRAME_POSTER_FUNC_MOUSE_MODE", e[e.LK_IFRAME_POSTER_FUNC_SCALE_MODE = 10101] = "LK_IFRAME_POSTER_FUNC_SCALE_MODE", e[e.LK_IFRAME_POSTER_FUNC_RESTART_CLOUD_APP = 10102] = "LK_IFRAME_POSTER_FUNC_RESTART_CLOUD_APP", e[e.LK_IFRAME_POSTER_FUNC_WX_JS_BRIDGE_READY = 10103] = "LK_IFRAME_POSTER_FUNC_WX_JS_BRIDGE_READY", e[e.LK_IFRAME_POSTER_FUNC_REQUEST_PLAY_VIDEO = 10104] = "LK_IFRAME_POSTER_FUNC_REQUEST_PLAY_VIDEO", e[e.LK_IFRAME_POSTER_UI_CONTROLLER_BAR = 10200] = "LK_IFRAME_POSTER_UI_CONTROLLER_BAR", e[e.LK_IFRAME_POSTER_UI_PLAYER_LIST = 10201] = "LK_IFRAME_POSTER_UI_PLAYER_LIST", e[e.LK_IFRAME_POSTER_UI_PLAYER_SHARE_URL = 10202] = "LK_IFRAME_POSTER_UI_PLAYER_SHARE_URL", e[e.LK_IFRAME_POSTER_UI_MOBILE_CONTROL_BALL = 10203] = "LK_IFRAME_POSTER_UI_MOBILE_CONTROL_BALL", e[e.LK_IFRMAE_POSTER_UI_MOBILE_JOYSTICK = 10204] = "LK_IFRMAE_POSTER_UI_MOBILE_JOYSTICK", e[e.LK_IFRAME_POSTER_UI_MOBILE_VIRTUAL_KEYBOARD = 10205] = "LK_IFRAME_POSTER_UI_MOBILE_VIRTUAL_KEYBOARD", e[e.LK_IFRAME_POSTER_UI_MOBILE_VIRTUAL_MOUSE = 10206] = "LK_IFRAME_POSTER_UI_MOBILE_VIRTUAL_MOUSE", e[e.LK_IFRAME_POSTER_UI_MOBILE_MENU = 10207] = "LK_IFRAME_POSTER_UI_MOBILE_MENU", e[e.LK_IFRAME_POSTER_UI_MOBILE_FORCE_LANDSCAPE = 10208] = "LK_IFRAME_POSTER_UI_MOBILE_FORCE_LANDSCAPE", e[e.LK_IFRAME_POSTER_UI_MOBILE_TOUCH_POINT = 10209] = "LK_IFRAME_POSTER_UI_MOBILE_TOUCH_POINT", e[e.LK_IFRAME_POSTER_UI_TOAST_LEVEL = 10210] = "LK_IFRAME_POSTER_UI_TOAST_LEVEL", e[e.LK_IFRAME_POSTER_UI_ALERT = 10211] = "LK_IFRAME_POSTER_UI_ALERT", e[e.LK_IFRAME_POSTER_UI_CONFIRM = 10212] = "LK_IFRAME_POSTER_UI_CONFIRM", e[e.LK_DATA_CHANNEL_ESTABLISHED = 2e4] = "LK_DATA_CHANNEL_ESTABLISHED", e[e.LK_DATA_CHANNEL_RETYING = 20001] = "LK_DATA_CHANNEL_RETYING", e[e.LK_DATA_CHANNEL_CLOSE = 20002] = "LK_DATA_CHANNEL_CLOSE", e[e.LK_DATA_CHANNEL_ERROR = 20003] = "LK_DATA_CHANNEL_ERROR", e[e.LK_DATA_CHANNEL_BINARY_MESSAGE = 20004] = "LK_DATA_CHANNEL_BINARY_MESSAGE", e[e.LK_DATA_CHANNEL_TEXT_MESSAGE = 20005] = "LK_DATA_CHANNEL_TEXT_MESSAGE", e[e.LK_RE_CONNECT_DATA_CHANNEL = 20100] = "LK_RE_CONNECT_DATA_CHANNEL", e[e.LK_CLOSE_DATA_CHANNEL = 20101] = "LK_CLOSE_DATA_CHANNEL", e[e.LK_DATA_CHANNEL_SEND_TEXT = 20102] = "LK_DATA_CHANNEL_SEND_TEXT", e[e.LK_DATA_CHANNEL_SEND_BINARY = 20103] = "LK_DATA_CHANNEL_SEND_BINARY", e[e.LK_DATA_CHANNEL_RENDERSERVER_OPEN = 20200] = "LK_DATA_CHANNEL_RENDERSERVER_OPEN", e[e.LK_DATA_CHANNEL_RENDERSERVER_CLOSE = 20201] = "LK_DATA_CHANNEL_RENDERSERVER_CLOSE", e[e.LK_DATA_CHANNEL_RENDERSERVER_BINARY_MESSAGE = 20202] = "LK_DATA_CHANNEL_RENDERSERVER_BINARY_MESSAGE", e[e.LK_DATA_CHANNEL_RENDERSERVER_TEXT_MESSAGE = 20203] = "LK_DATA_CHANNEL_RENDERSERVER_TEXT_MESSAGE", e[e.LK_DATA_CHANNEL_RENDERSERVER_SEND_TEXT = 20300] = "LK_DATA_CHANNEL_RENDERSERVER_SEND_TEXT", e[e.LK_DATA_CHANNEL_RENDERSERVER_SEND_BINARY = 20301] = "LK_DATA_CHANNEL_RENDERSERVER_SEND_BINARY";
14528
14673
  }(m ||= {});
14529
14674
  class g {
14675
+ static GetLogErrorEventMessageByType(e) {
14676
+ let t = this.GetEventMessageByType(e);
14677
+ if (t) return t;
14678
+ switch (e) {
14679
+ case m.LK_TASK_CREATE_FAILED: return p.message.TASK_CREATE_FAILED;
14680
+ case m.LK_APP_PROCESS_NOTIFI_APP_QUIT: return p.message.LK_APP_PROCESS_NOTIFI_APP_QUIT;
14681
+ case m.LK_STARTVRSTREAM_START_PROCESS_FAILED: return p.message.STARTVRSTREAM_START_PROCESS_FAILED;
14682
+ case m.LK_STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT: return p.message.STARTVRSTREAM_START_DRIVER_RUNTIME_TIMEOUT;
14683
+ case m.LK_STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR: return p.message.STARTVRSTREAM_START_DRIVER_RUNTIME_UDPPORT_ERROR;
14684
+ case m.LK_STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR: return p.message.STARTVRSTREAM_START_DRIVER_RUNTIME_ENCODER_ERROR;
14685
+ case m.LK_DATA_CHANNEL_CLOSE: return p.message.DATA_CHANNEL_CLOSE;
14686
+ case m.LK_DATA_CHANNEL_ERROR: return p.message.DATA_CHANNEL_ERROR;
14687
+ default: return "";
14688
+ }
14689
+ }
14530
14690
  static GetEventMessageByType(e) {
14531
14691
  switch (e) {
14532
- case m.LK_WEB_CLIENT_LOAD_SUCCESS: return "webclient load success";
14692
+ case m.LK_WEB_CLIENT_LOAD_SUCCESS: return p.message.WEB_CLIENT_LOAD_SUCCESS;
14533
14693
  case m.LK_RENDER_SERVER_CONNECTED: return p.message.RENDER_SERVER_CONNECTED;
14534
14694
  case m.LK_RENDER_SERVER_FAILED: return p.message.RENDER_SERVER_FAILED;
14535
14695
  case m.LK_RENDER_SERVER_CLOSE: return p.message.RENDER_SERVER_CLOSE;
@@ -14554,7 +14714,7 @@ var validator = {
14554
14714
  case m.LK_START_STREAM_NOT_STREAMING: return p.message.startStreamNotStreaming;
14555
14715
  case m.LK_START_STREAM_ENCODER_ERROR: return p.message.startStreamEncodeError;
14556
14716
  case m.LK_VIDEO_LOADED: return p.message.VIDEO_LOADED;
14557
- case m.LK_USER_CAPTURE_FRAME: return "user capture a render frame.";
14717
+ case m.LK_USER_CAPTURE_FRAME: return p.message.USER_CAPTURE_FRAME;
14558
14718
  default: return "";
14559
14719
  }
14560
14720
  }
@@ -15019,7 +15179,7 @@ var validator = {
15019
15179
  return !!(r && r.length > 0);
15020
15180
  }
15021
15181
  static setAudioBitrate(e, t) {
15022
- return e.replace("useinbandfec=1", `useinbandfec=1; maxaveragebitrate=${t}; stereo=1; sprop-stereo=1 ; cbr=1`);
15182
+ return e.indexOf("maxaveragebitrate") === -1 ? e.replace("useinbandfec=1", `useinbandfec=1; maxaveragebitrate=${t}; stereo=1; sprop-stereo=1 ; cbr=1`) : e;
15023
15183
  }
15024
15184
  static setBitRate(e, t, n, r) {
15025
15185
  return [
@@ -15087,14 +15247,15 @@ var validator = {
15087
15247
  })), c) {
15088
15248
  let t = RegExp("a=rtpmap:" + c + i, a);
15089
15249
  e = e.replace(t, ((e) => (o.info("remove rtpmap", e), "")));
15250
+ let n = RegExp("a=rtcp-fb:" + c + i, a);
15251
+ e = e.replace(n, ((e) => (o.info("remove rtx rtcp-fb", e), "")));
15090
15252
  }
15091
15253
  let l = RegExp("a=fmtp:.*" + t + i, a);
15092
15254
  e = e.replace(l, ((e) => (o.info("remove fmtp ", e), "")));
15093
15255
  }
15094
15256
  return e = e.replace(/m=video 9 UDP\/TLS\/RTP\/SAVPF.*/g, ((e) => {
15095
- if (r.length > 0) for (let t of r) e = e.replace(t + " ", "");
15096
- if (s.length > 0) for (let t of s) e = e.replace(t + " ", "");
15097
- return e;
15257
+ let t = e.split(" "), n = t.slice(0, 3).join(" "), i = t.slice(3), a = new Set([...r, ...s]);
15258
+ return n + " " + i.filter(((e) => !a.has(e))).join(" ");
15098
15259
  }));
15099
15260
  }
15100
15261
  static sdpGooAttrLine(...e) {
@@ -16706,7 +16867,7 @@ var validator = {
16706
16867
  serverStatics: this.serverStatics
16707
16868
  };
16708
16869
  if (t.forEach(((t) => {
16709
- if (t.type != "inbound-rtp" || t.isRemote || t.mediaType != "video" && !t.id.toLowerCase().includes("video") || (n.timestamp = t.timestamp, n.bytesReceived = t.bytesReceived, n.framesDecoded = t.framesDecoded, n.packetsLost = t.packetsLost, n.bytesReceivedStart = e.aggregatedStats && e.aggregatedStats.bytesReceivedStart ? e.aggregatedStats.bytesReceivedStart : t.bytesReceived, n.framesDecodedStart = e.aggregatedStats && e.aggregatedStats.framesDecodedStart ? e.aggregatedStats.framesDecodedStart : t.framesDecoded, n.timestampStart = e.aggregatedStats && e.aggregatedStats.timestampStart ? e.aggregatedStats.timestampStart : t.timestamp, t.totalDecodeTime && t.framesDecoded && (n.avgDecodeDelay = t.totalDecodeTime / t.framesDecoded * 1e3), t.totalProcessingDelay && t.framesDecoded && (n.avgProcessDelay = t.totalProcessingDelay / t.framesDecoded * 1e3), e.aggregatedStats && e.aggregatedStats.timestamp && (e.aggregatedStats.bytesReceived && (n.bitrate = 8 * (n.bytesReceived - e.aggregatedStats.bytesReceived) / (n.timestamp - e.aggregatedStats.timestamp), n.bitrate = Math.round(n.bitrate), n.lowBitrate = e.aggregatedStats.lowBitrate && e.aggregatedStats.lowBitrate < n.bitrate ? e.aggregatedStats.lowBitrate : n.bitrate, n.highBitrate = e.aggregatedStats.highBitrate && e.aggregatedStats.highBitrate > n.bitrate ? e.aggregatedStats.highBitrate : n.bitrate), e.aggregatedStats.bytesReceivedStart && (n.avgBitrate = 8 * (n.bytesReceived - e.aggregatedStats.bytesReceivedStart) / (n.timestamp - e.aggregatedStats.timestampStart), n.avgBitrate = Math.round(n.avgBitrate)), e.aggregatedStats.framesDecoded && (n.framerate = (n.framesDecoded - e.aggregatedStats.framesDecoded) / ((n.timestamp - e.aggregatedStats.timestamp) / 1e3), n.framerate = parseFloat(n.framerate.toFixed(2)), n.lowFramerate = e.aggregatedStats.lowFramerate && e.aggregatedStats.lowFramerate < n.framerate ? e.aggregatedStats.lowFramerate : n.framerate, n.highFramerate = e.aggregatedStats.highFramerate && e.aggregatedStats.highFramerate > n.framerate ? e.aggregatedStats.highFramerate : n.framerate), e.aggregatedStats.framesDecodedStart && (n.avgframerate = (n.framesDecoded - e.aggregatedStats.framesDecodedStart) / ((n.timestamp - e.aggregatedStats.timestampStart) / 1e3), n.avgframerate = Math.round(n.avgframerate)))), t.hasOwnProperty("frameWidth") && t.hasOwnProperty("frameHeight") && (n.framesDropped = t.framesDropped, n.framesReceived = t.framesReceived, n.framesDroppedPercentage = t.framesDropped / t.framesReceived * 100, n.frameHeight = t.frameHeight, n.frameWidth = t.frameWidth, n.frameHeightStart = e.aggregatedStats && e.aggregatedStats.frameHeightStart ? e.aggregatedStats.frameHeightStart : t.frameHeight, n.frameWidthStart = e.aggregatedStats && e.aggregatedStats.frameWidthStart ? e.aggregatedStats.frameWidthStart : t.frameWidth), t.id && t.id.indexOf("RTCInboundRTPVideoStream") > -1 && t.hasOwnProperty("packetsLost")) {
16870
+ if (t.type != "inbound-rtp" || t.isRemote || t.kind != "video" && t.mediaType != "video" && !t.id.toLowerCase().includes("video") || (n.timestamp = t.timestamp, n.bytesReceived = t.bytesReceived, n.framesDecoded = t.framesDecoded, n.packetsLost = t.packetsLost, n.bytesReceivedStart = e.aggregatedStats && e.aggregatedStats.bytesReceivedStart ? e.aggregatedStats.bytesReceivedStart : t.bytesReceived, n.framesDecodedStart = e.aggregatedStats && e.aggregatedStats.framesDecodedStart ? e.aggregatedStats.framesDecodedStart : t.framesDecoded, n.timestampStart = e.aggregatedStats && e.aggregatedStats.timestampStart ? e.aggregatedStats.timestampStart : t.timestamp, t.totalDecodeTime && t.framesDecoded && (n.avgDecodeDelay = t.totalDecodeTime / t.framesDecoded * 1e3), t.totalProcessingDelay && t.framesDecoded && (n.avgProcessDelay = t.totalProcessingDelay / t.framesDecoded * 1e3), o.info("video stat", n.avgDecodeDelay, n.avgProcessDelay, t.framesReceived, t.framesDecoded), e.aggregatedStats && e.aggregatedStats.timestamp && (e.aggregatedStats.bytesReceived && (n.bitrate = 8 * (n.bytesReceived - e.aggregatedStats.bytesReceived) / (n.timestamp - e.aggregatedStats.timestamp), n.bitrate = Math.round(n.bitrate), n.lowBitrate = e.aggregatedStats.lowBitrate && e.aggregatedStats.lowBitrate < n.bitrate ? e.aggregatedStats.lowBitrate : n.bitrate, n.highBitrate = e.aggregatedStats.highBitrate && e.aggregatedStats.highBitrate > n.bitrate ? e.aggregatedStats.highBitrate : n.bitrate), e.aggregatedStats.bytesReceivedStart && (n.avgBitrate = 8 * (n.bytesReceived - e.aggregatedStats.bytesReceivedStart) / (n.timestamp - e.aggregatedStats.timestampStart), n.avgBitrate = Math.round(n.avgBitrate)), e.aggregatedStats.framesDecoded && (n.framerate = (n.framesDecoded - e.aggregatedStats.framesDecoded) / ((n.timestamp - e.aggregatedStats.timestamp) / 1e3), n.framerate = parseFloat(n.framerate.toFixed(2)), n.lowFramerate = e.aggregatedStats.lowFramerate && e.aggregatedStats.lowFramerate < n.framerate ? e.aggregatedStats.lowFramerate : n.framerate, n.highFramerate = e.aggregatedStats.highFramerate && e.aggregatedStats.highFramerate > n.framerate ? e.aggregatedStats.highFramerate : n.framerate), e.aggregatedStats.framesDecodedStart && (n.avgframerate = (n.framesDecoded - e.aggregatedStats.framesDecodedStart) / ((n.timestamp - e.aggregatedStats.timestampStart) / 1e3), n.avgframerate = Math.round(n.avgframerate)))), t.hasOwnProperty("frameWidth") && t.hasOwnProperty("frameHeight") && (n.framesDropped = t.framesDropped, n.framesReceived = t.framesReceived, n.framesDroppedPercentage = t.framesDropped / t.framesReceived * 100, n.frameHeight = t.frameHeight, n.frameWidth = t.frameWidth, n.frameHeightStart = e.aggregatedStats && e.aggregatedStats.frameHeightStart ? e.aggregatedStats.frameHeightStart : t.frameHeight, n.frameWidthStart = e.aggregatedStats && e.aggregatedStats.frameWidthStart ? e.aggregatedStats.frameWidthStart : t.frameWidth), t.id && t.id.indexOf("RTCInboundRTPVideoStream") > -1 && t.hasOwnProperty("packetsLost")) {
16710
16871
  let e = t.packetsReceived - this.lastPacktetsReceived, r = t.packetsLost - this.lastPacktetsLost, i = r / (r + e) * 100;
16711
16872
  isNaN(i) || (n.packetsLostPerc = i), this.lastPacktetsLost = t.packetsLost, this.lastPacktetsReceived = t.packetsReceived;
16712
16873
  }
@@ -16733,7 +16894,7 @@ var validator = {
16733
16894
  decodeDelay: n.avgDecodeDelay,
16734
16895
  totalProcessDelay: n.avgProcessDelay
16735
16896
  } });
16736
- this.sendInput(t), o.info("video stat", t, n.avgDecodeDelay, n.avgProcessDelay);
16897
+ this.sendInput(t), o.info("video stat webrtc", t, n.avgDecodeDelay, n.avgProcessDelay, n.framerate);
16737
16898
  }
16738
16899
  this.$emit(F.NET_STATE, n), this.larksr.$emit(m.LK_RTC_EVENT_PEERCONNECTION_STATE, E.deepCopy(n), "UPDATE PEERCONNECTION STATE");
16739
16900
  }
@@ -16830,17 +16991,44 @@ var validator = {
16830
16991
  } else O.openUrl && (o.info("got openUrl", O.openUrl), O.openUrl.url && this.$emit(F.OPEN_URL, O.openUrl.url));
16831
16992
  }
16832
16993
  onCreateOfferSuccess(e) {
16833
- let t = e;
16834
- o.info("创建 Off 成功\n" + t.sdp);
16835
- let n = t.sdp;
16836
- if (this.pc === null || n == null) return;
16837
- this.larksr.isPixelStreaming ? (n = n.replace("useinbandfec=1", "useinbandfec=1;stereo=1;sprop-maxcapturerate=48000"), n = n.replace(/a=extmap-allow-mixed.*[.\n\r]*/g, ((e) => (o.info("remove a=extmap-allow-mixed", e), "")))) : (this.larksr.params.preferDecoder !== "auto" && C.checkSupport() !== -2 && (this.larksr.params.preferDecoder === "vp8" ? D.hasVp8(n) ? (n = D.removeVp9(n), n = D.removeH264(n), n = D.removeAV1(n)) : o.err("要求使用VP8解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "vp9" ? D.hasVp9(n) ? (n = D.removeVp8(n), n = D.removeH264(n), n = D.removeAV1(n)) : o.err("要求使用VP9解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "h264" ? D.hasH264(n) ? (n = D.removeVp8(n), n = D.removeVp9(n), n = D.removeAV1(n)) : o.err("要求使用H264解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "av1" || this.larksr.params.preferDecoder === "av1x" ? D.hasAV1X(n) && (n = D.removeVp8(n), n = D.removeVp9(n), n = D.removeH264(n)) : this.larksr.params.preferDecoder === "hevc" ? D.hasHEVC(n) ? (n = D.removeVp8(n), n = D.removeVp9(n), n = D.removeH264(n), n = D.removeAV1(n), n = D.removeH265(n), n = D.removeSVAC(n)) : o.err("要求使用hevc解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "h265" ? D.hasH265(n) ? (n = D.removeVp8(n), n = D.removeVp9(n), n = D.removeH264(n), n = D.removeAV1(n), n = D.removeHEVC(n), n = D.removeSVAC(n)) : o.err("要求使用h265解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "svac" && (D.hasSVAC(n) ? (n = D.removeVp8(n), n = D.removeVp9(n), n = D.removeH264(n), n = D.removeAV1(n), n = D.removeH265(n), n = D.removeHEVC(n)) : o.err("要求使用svac解码器但该浏览器未发现"))), n = n.replace(/a=extmap-allow-mixed.*[.\n\r]*/g, ((e) => (o.info("remove a=extmap-allow-mixed", e), ""))), this.config.codeRate && this.config.codeRate > 1e3 && this.sdpCreateSuccess && o.warn("recreate sdp.", this.audioBinding, this.videoBinding), this.larksr.params.audioCodeRate && (n = D.setAudioBitrate(n, 1e3 * this.larksr.params.audioCodeRate)));
16838
- let r = {
16839
- type: t.type,
16840
- sdp: n
16994
+ var t;
16995
+ let n = e;
16996
+ o.info("创建 Off 成功\n" + n.sdp);
16997
+ let r = n.sdp;
16998
+ if (this.pc === null || r == null) return;
16999
+ this.larksr.isPixelStreaming ? (r = r.replace("useinbandfec=1", "useinbandfec=1;stereo=1;sprop-maxcapturerate=48000"), r = r.replace(/a=extmap-allow-mixed.*[.\n\r]*/g, ((e) => (o.info("remove a=extmap-allow-mixed", e), "")))) : (this.larksr.params.preferDecoder !== "auto" && C.checkSupport() !== -2 && (this.larksr.params.preferDecoder === "vp8" ? D.hasVp8(r) ? (r = D.removeVp9(r), r = D.removeH264(r), r = D.removeAV1(r)) : o.err("要求使用VP8解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "vp9" ? D.hasVp9(r) ? (r = D.removeVp8(r), r = D.removeH264(r), r = D.removeAV1(r)) : o.err("要求使用VP9解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "h264" ? D.hasH264(r) ? (r = D.removeVp8(r), r = D.removeVp9(r), r = D.removeAV1(r)) : o.err("要求使用H264解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "av1" || this.larksr.params.preferDecoder === "av1x" ? (D.hasAV1X(r) && (r = D.removeVp8(r), r = D.removeVp9(r), r = D.removeH264(r), r = D.removeH265(r), r = D.removeHEVC(r)), D.hasAV1(r) && (r = D.removeVp8(r), r = D.removeVp9(r), r = D.removeH264(r), r = D.removeH265(r), r = D.removeHEVC(r))) : this.larksr.params.preferDecoder === "hevc" ? D.hasHEVC(r) ? (r = D.removeVp8(r), r = D.removeVp9(r), r = D.removeH264(r), r = D.removeAV1(r), r = D.removeH265(r), r = D.removeSVAC(r)) : o.err("要求使用hevc解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "h265" ? D.hasH265(r) ? (r = D.removeVp8(r), r = D.removeVp9(r), r = D.removeH264(r), r = D.removeAV1(r), r = D.removeHEVC(r), r = D.removeSVAC(r)) : o.err("要求使用h265解码器但该浏览器未发现") : this.larksr.params.preferDecoder === "svac" && (D.hasSVAC(r) ? (r = D.removeVp8(r), r = D.removeVp9(r), r = D.removeH264(r), r = D.removeAV1(r), r = D.removeH265(r), r = D.removeHEVC(r)) : o.err("要求使用svac解码器但该浏览器未发现"))), r = r.replace(/a=extmap-allow-mixed.*[.\n\r]*/g, ((e) => (o.info("remove a=extmap-allow-mixed", e), ""))), this.config.codeRate && this.config.codeRate > 1e3 && this.sdpCreateSuccess && o.warn("recreate sdp.", this.audioBinding, this.videoBinding), this.larksr.params.audioCodeRate && (r = D.setAudioBitrate(r, 1e3 * this.larksr.params.audioCodeRate)));
17000
+ let i = {
17001
+ type: n.type,
17002
+ sdp: r
16841
17003
  };
16842
- o.info("发送 offer sdp\n" + r.sdp), this.pc.setLocalDescription(r).then((() => {
16843
- o.info("设置本地 SDP 成功"), this.sdpCreateSuccess = !0, this.$emit(F.RTC_SDP, r);
17004
+ if (o.info("发送 offer sdp\n" + i.sdp), i.sdp) {
17005
+ let e = i.sdp.split("\r\n"), t = "";
17006
+ for (let n = 0; n < e.length; n++) {
17007
+ let r = e[n];
17008
+ if (r.startsWith("m=")) {
17009
+ t = r;
17010
+ let e = r.split(" ");
17011
+ if (e.length >= 4) {
17012
+ let n = e.slice(3);
17013
+ for (let e of n) /^\d+$/.test(e) && (RegExp(`^a=rtpmap:${e}\\s`, "m").test(i.sdp || "") || o.err("SDP 校验失败: m-line \"" + t + "\" 中 PT " + e + " 缺少对应 a=rtpmap:"));
17014
+ }
17015
+ }
17016
+ let a = r.match(/^a=fmtp:(\d+)\s/);
17017
+ if (a) {
17018
+ let e = a[1];
17019
+ RegExp(`^a=rtpmap:${e}\\s`, "m").test(i.sdp || "") || o.warn("SDP 存在 fmtp:" + e + " 但缺少对应 a=rtpmap:" + e + " (可能已被移除)");
17020
+ }
17021
+ }
17022
+ let n = i.sdp.match(/^a=rtcp-fb:(\d+)/gm);
17023
+ if (n) for (let e of n) {
17024
+ let t = e.match(/^a=rtcp-fb:(\d+)/)?.[1];
17025
+ t && (RegExp(`^a=rtpmap:${t}\\s`, "m").test(i.sdp || "") || o.warn("SDP 存在 a=rtcp-fb:" + t + " 但缺少对应 a=rtpmap:" + t));
17026
+ }
17027
+ let r = i.sdp.match(/^a=fmtp:111 .*/m);
17028
+ r && o.info("音频 fmtp:111 行: " + r[0]);
17029
+ }
17030
+ this.pc.setLocalDescription(i).then((() => {
17031
+ o.info("设置本地 SDP 成功"), this.sdpCreateSuccess = !0, this.$emit(F.RTC_SDP, i);
16844
17032
  })).catch(((e) => {
16845
17033
  o.err("设置本地SDP失败: " + e.toString()), this.sdpCreateSuccess = !1, this.$emit(F.ERROR, "Failed to set session description: " + e.toString());
16846
17034
  }));
@@ -17142,38 +17330,69 @@ var validator = {
17142
17330
  return ++this._voiceId;
17143
17331
  }
17144
17332
  constructor({ bufferSize: e = lt.bufferSize, sampleRate: t = lt.sampleRate, sampleBits: n = lt.sampleBits } = lt) {
17145
- super(), this._state = ct.READY, this.ctx = new (window.AudioContext || window.webkitAudioContext)(), this.sampleRate = lt.sampleRate, this.sampleBits = lt.sampleBits, this.source = null, this.stream = null, this.buffer = [], this.bufferSize = 0, this._voiceId = 0;
17146
- let { ctx: r } = this, i = r.createScriptProcessor || r.createJavaScriptNode;
17147
- this.recorder = i.call(r, e, 1, 1), this.sampleRate = t, this.sampleBits = n;
17148
- }
17149
- start() {
17150
- return this.ctx.resume(), new Promise(((e, t) => {
17151
- navigator.mediaDevices.getUserMedia({
17152
- audio: !0,
17153
- video: !1
17154
- }).then(((t) => {
17155
- let n = this.ctx.createMediaStreamSource(t);
17156
- this.stream = t, this.source = n;
17157
- let r = 0;
17158
- this.recorder.onaudioprocess = (e) => {
17159
- let t = e.inputBuffer.getChannelData(0), n = this.ctx.sampleRate, i = this.sampleRate < n, a = i ? this.sampleRate : n;
17160
- i && (t = this.compress(t, n, a));
17161
- let o = this.encodeToPCM(t, this.sampleBits);
17162
- this.emit({
17163
- type: ut.DATA,
17164
- voiceId: this.voiceId,
17165
- sliceId: r++,
17166
- data: new Uint8Array(o)
17167
- });
17168
- }, n.connect(this.recorder), this.recorder.connect(this.ctx.destination), this._state = ct.RECORDING, this._voiceId++, e(this._voiceId);
17169
- })).catch(((e) => {
17170
- t(e);
17171
- }));
17172
- }));
17333
+ super(), this._state = ct.READY, this.ctx = new (window.AudioContext || window.webkitAudioContext)(), this.sampleRate = lt.sampleRate, this.sampleBits = lt.sampleBits, this.recorder = null, this.legacyRecorder = null, this.workletNode = null, this.source = null, this.stream = null, this.buffer = [], this.bufferSize = 0, this.pendingSamples = [], this.pendingSampleLength = 0, this.sliceId = 0, this._voiceId = 0, this.bufferSize = e, this.sampleRate = t, this.sampleBits = n;
17334
+ }
17335
+ async start() {
17336
+ await this.ctx.resume();
17337
+ let e = await navigator.mediaDevices.getUserMedia({
17338
+ audio: !0,
17339
+ video: !1
17340
+ }), t = this.ctx.createMediaStreamSource(e);
17341
+ this.stream = e, this.source = t, this.pendingSamples = [], this.pendingSampleLength = 0, this.sliceId = 0;
17342
+ let n = await this.createAudioProcessor();
17343
+ return this.recorder = n, t.connect(n), n.connect(this.ctx.destination), this._voiceId++, this._state = ct.RECORDING, this._voiceId;
17173
17344
  }
17174
17345
  pause() {
17175
- var e, t;
17176
- (e = this.stream) == null || e.getAudioTracks()[0].stop(), this.recorder.disconnect(), (t = this.source) == null || t.disconnect(), this.ctx.suspend(), this._state = ct.READY;
17346
+ var e, t, n, r;
17347
+ (e = this.stream) == null || e.getAudioTracks()[0].stop(), this.legacyRecorder && (this.legacyRecorder.onaudioprocess = null), (t = this.workletNode) == null || t.port.close(), (n = this.recorder) == null || n.disconnect(), (r = this.source) == null || r.disconnect(), this.ctx.suspend(), this.recorder = null, this.legacyRecorder = null, this.workletNode = null, this.pendingSamples = [], this.pendingSampleLength = 0, this._state = ct.READY;
17348
+ }
17349
+ async createAudioProcessor() {
17350
+ let e = window.AudioWorkletNode;
17351
+ if (this.ctx.audioWorklet && e) try {
17352
+ let t = URL.createObjectURL(new Blob(["\n class LarkSrPcmCaptureProcessor extends AudioWorkletProcessor {\n process(inputs, outputs) {\n const input = inputs[0];\n const channel = input && input[0];\n if (channel) {\n const samples = channel.slice();\n this.port.postMessage(samples.buffer, [samples.buffer]);\n }\n\n const output = outputs[0];\n if (output) {\n output.forEach((channel) => channel.fill(0));\n }\n return true;\n }\n }\n registerProcessor('larksr-pcm-capture', LarkSrPcmCaptureProcessor);\n "], { type: "application/javascript" }));
17353
+ try {
17354
+ await this.ctx.audioWorklet.addModule(t);
17355
+ } finally {
17356
+ URL.revokeObjectURL(t);
17357
+ }
17358
+ let n = new e(this.ctx, "larksr-pcm-capture", {
17359
+ numberOfInputs: 1,
17360
+ numberOfOutputs: 1,
17361
+ channelCount: 1,
17362
+ channelCountMode: "explicit",
17363
+ outputChannelCount: [1]
17364
+ });
17365
+ return n.port.onmessage = (e) => {
17366
+ e.data instanceof ArrayBuffer && this.appendAudioSamples(new Float32Array(e.data));
17367
+ }, this.workletNode = n, n;
17368
+ } catch (e) {
17369
+ o.warn("AudioWorklet is unavailable, falling back to ScriptProcessorNode", e);
17370
+ }
17371
+ let t = this.ctx.createScriptProcessor || this.ctx.createJavaScriptNode;
17372
+ if (!t) throw Error("Audio processing is not implemented in this environment");
17373
+ let n = t.call(this.ctx, this.bufferSize, 1, 1);
17374
+ return n.onaudioprocess = (e) => {
17375
+ this.appendAudioSamples(e.inputBuffer.getChannelData(0));
17376
+ }, this.legacyRecorder = n, n;
17377
+ }
17378
+ appendAudioSamples(e) {
17379
+ if (this._state === ct.RECORDING) for (this.pendingSamples.push(e.slice()), this.pendingSampleLength += e.length; this.pendingSampleLength >= this.bufferSize;) {
17380
+ let e = new Float32Array(this.bufferSize), t = 0;
17381
+ for (; t < e.length;) {
17382
+ let n = this.pendingSamples[0], r = Math.min(e.length - t, n.length);
17383
+ e.set(n.subarray(0, r), t), t += r, this.pendingSampleLength -= r, r === n.length ? this.pendingSamples.shift() : this.pendingSamples[0] = n.subarray(r);
17384
+ }
17385
+ this.processAudioChunk(e);
17386
+ }
17387
+ }
17388
+ processAudioChunk(e) {
17389
+ let t = this.ctx.sampleRate, n = this.sampleRate < t, r = n ? this.sampleRate : t, i = n ? this.compress(e, t, r) : e, a = this.encodeToPCM(i, this.sampleBits);
17390
+ this.emit({
17391
+ type: ut.DATA,
17392
+ voiceId: this.voiceId,
17393
+ sliceId: this.sliceId++,
17394
+ data: new Uint8Array(a)
17395
+ });
17177
17396
  }
17178
17397
  clear() {
17179
17398
  this.buffer = [], this.bufferSize = 0;
@@ -17927,9 +18146,10 @@ var validator = {
17927
18146
  o.info("sendReStartApplication"), this.sendInput(c.CloudLark.ClientInput.create({ appControl: { restart: !0 } }), !0);
17928
18147
  }
17929
18148
  sendApplicationSize(e, t) {
17930
- o.info("sendApplicationSize", e, t), this.sendInput(c.CloudLark.ClientInput.create({ appControl: { resize: {
18149
+ o.info("sendApplicationSize", e, t, window.devicePixelRatio), this.sendInput(c.CloudLark.ClientInput.create({ appControl: { resize: {
17931
18150
  width: e,
17932
- height: t
18151
+ height: t,
18152
+ devicePixelRatio: window.devicePixelRatio
17933
18153
  } } }), !0);
17934
18154
  }
17935
18155
  startAerialview(e, t = 100, n, r) {
@@ -18076,7 +18296,10 @@ var validator = {
18076
18296
  height: this.larksr.screenState.syncClientViewport.height,
18077
18297
  fps: this.larksr.params.frameRate,
18078
18298
  bitrateKbps: this.larksr.params.codeRate,
18079
- useWebcodec: e && this.larksr.params.useWebCodec
18299
+ useWebcodec: e && this.larksr.params.useWebCodec,
18300
+ maxWidth: window.screen.width,
18301
+ maxHeight: window.screen.height,
18302
+ devicePixelRatio: window.devicePixelRatio
18080
18303
  }, this.larksr.isPixelStreaming));
18081
18304
  }
18082
18305
  }
@@ -18544,7 +18767,7 @@ var validator = {
18544
18767
  })(vt ||= {});
18545
18768
  class yt {
18546
18769
  constructor() {
18547
- this.appServer = "", this.appPort = "", this.renderSSLServerPort = "", this.appliType = vt.SHARED, this.wsProxy = !1, this.preferPubOutIp = "", this.taskid = "", this.appliName = "", this.width = x.OriginW, this.height = x.OriginH, this.scaleMode = b.CONTAIN_APP, this.logLevel = "warn", this.noOperationTimeout = 0, this.waterMark = !1, this.rttLimit = 60, this.packetLostLimit = 20, this.rttLimitInterval = 20, this.codeRate = x.CodeRate, this.audioCodeRate = x.AudioCodeRate, this.frameRate = x.FrameRate, this.network = "public", this.language = "", this.initCursorMode = 0, this.bgColor = "", this.fullScreenMode = 0, this.mobileFullScreenMode = 0, this.playerMode = 0, this.userType = 1, this.nickname = "", this.authCode = "", this.debugTask = !1, this.debugWebServer = "", this.loadingTimeout = 300, this.shareUrl = !1, this.mobileForceLandscape = !0, this.mobileVirtualJoystick = !0, this.mouseZoomDirection = 0, this.showPlayerList = !0, this.preferDecoder = "h264", this.touchOperateMode = "mouse", this.appliId = "", this.syncLocalToCloudClipboard = !0, this.enableRttIcon = !0, this.enableSoundRequire = !0, this.toastLevel = 0, this.wsId = "", this.groupId = "", this.textInputEventPrompt = !0, this.audioInput = !1, this.audioInputAutoStart = !1, this.videoInput = !1, this.videoInputAutoStart = !1, this.liveStreaming = !1, this.useSeparateMediaSharePeer = !0, this.mobileKeyboardType = 0, this.initResolutionType = 0, this.useWebCodec = !1, this.mobileWebMenuType = 0, this.showWebMenu = 1, this.forceResolution = !1, this.ignoreCloudDesktopResolution = !0, this.ignoreScreenOrientation = !0, this.imeFirstNotice = 1;
18770
+ this.appServer = "", this.appPort = "", this.renderSSLServerPort = "", this.appliType = vt.SHARED, this.wsProxy = !1, this.preferPubOutIp = "", this.taskid = "", this.appliName = "", this.width = x.OriginW, this.height = x.OriginH, this.scaleMode = b.CONTAIN_APP, this.logLevel = "warn", this.noOperationTimeout = 0, this.waterMark = !1, this.rttLimit = 60, this.packetLostLimit = 20, this.rttLimitInterval = 20, this.codeRate = x.CodeRate, this.audioCodeRate = x.AudioCodeRate, this.frameRate = x.FrameRate, this.network = "public", this.language = "", this.initCursorMode = 0, this.bgColor = "", this.fullScreenMode = 0, this.mobileFullScreenMode = 0, this.playerMode = 0, this.userType = 1, this.nickname = "", this.authCode = "", this.debugTask = !1, this.debugWebServer = "", this.loadingTimeout = 300, this.shareUrl = !1, this.mobileForceLandscape = !0, this.mobileVirtualJoystick = !0, this.mouseZoomDirection = 0, this.showPlayerList = !0, this.preferDecoder = "h264", this.touchOperateMode = "mouse", this.appliId = "", this.syncLocalToCloudClipboard = !0, this.enableRttIcon = !0, this.enableSoundRequire = !0, this.toastLevel = 0, this.wsId = "", this.groupId = "", this.textInputEventPrompt = !0, this.audioInput = !1, this.audioInputAutoStart = !1, this.videoInput = !1, this.videoInputAutoStart = !1, this.liveStreaming = !1, this.useSeparateMediaSharePeer = !0, this.mobileKeyboardType = 0, this.initResolutionType = 0, this.useWebCodec = !1, this.mobileWebMenuType = 0, this.showWebMenu = 1, this.showWebCloseBtn = 0, this.forceResolution = !1, this.ignoreCloudDesktopResolution = !0, this.ignoreScreenOrientation = !0, this.imeFirstNotice = 1, this.taskCloseType = 0;
18548
18771
  }
18549
18772
  get taskId() {
18550
18773
  return this.taskid;
@@ -18608,7 +18831,7 @@ var validator = {
18608
18831
  let t = new yt();
18609
18832
  t.appServer = e.renderServerIp, t.appPort = e.renderServerPort + "", t.renderSSLServerPort = e.renderSSLServerPort ? e.renderSSLServerPort + "" : "", t.taskid = e.taskId, t.scaleMode = B.getScaleMode(e.initWinSize), t.network = B.getNetwork(parseInt(e.network, 10)), t.preferPubOutIp = e.preferPublicIp, t.noOperationTimeout = B.getIntOption(e.noOperationTimeout, 0), t.rttLimit = B.getIntOption(e.rttLimit, 60), t.rttLimitInterval = B.getIntOption(e.rttLimitInterval, 20), t.wsProxy = B.getNumberBoolOption(e.wsProxy), t.initCursorMode = e.initCursorMode, t.bgColor = B.getBgColor(e.bgColor), t.fullScreenMode = e.fullScreenMode, t.mobileFullScreenMode = e.mobileFullScreenMode, t.playerMode = B.getIntOption(e.playerMode + "", 0), t.userType = B.getIntOption(e.userType + "", 1), e.nickName && (t.nickname = B.getStringOption(e.nickName)), e.nickname && (t.nickname = B.getStringOption(e.nickname)), t.authCode = B.getStringOption(e.authCode, ""), t.mobileForceLandscape = B.getNumberBoolOption(e.mobileForceLandscape), t.mobileVirtualJoystick = B.getNumberBoolOption(e.mobileVirtualJoystick), t.mouseZoomDirection = e.mouseZoomDirection, t.showPlayerList = B.getNumberBoolOption(e.playerListToggle);
18610
18833
  let n = B.getStringOption(e.touchOperateMode, "mouse");
18611
- if (t.touchOperateMode = n === "touch" || n === "touchScreen" ? "touchScreen" : "mouse", t.appliId = e.appliId, t.language = e.language, t.appliType = e.appliType, t.appliName = decodeURI(e.appliName), t.wsId = e.wsId ? e.wsId : "", t.groupId = e.groupId ? e.groupId : "", t.initResolutionType = B.getIntOption(e.initResolutionType, 0), t.useWebCodec = B.getNumberBoolOption(e.useWebCodec), t.preferDecoder = B.getStringOption(e.preferDecoder, "h264"), t.mobileWebMenuType = B.getIntOption(e.mobileWebMenuType, 0), t.showWebMenu = B.getIntOption(e.showWebMenu, 1), t.shareUrl = B.getBoolOption(e.shareUrl), t.textInputEventPrompt = B.getNumberBoolOption(e.textInputEventPrompt, !0), t.audioInput = B.getNumberBoolOption(e.audioInput, !1), t.audioInputAutoStart !== null && t.audioInputAutoStart !== void 0) {
18834
+ if (t.touchOperateMode = n === "touch" || n === "touchScreen" ? "touchScreen" : "mouse", t.appliId = e.appliId, t.language = e.language, t.appliType = e.appliType, t.appliName = decodeURI(e.appliName), t.wsId = e.wsId ? e.wsId : "", t.groupId = e.groupId ? e.groupId : "", t.initResolutionType = B.getIntOption(e.initResolutionType, 0), t.useWebCodec = B.getNumberBoolOption(e.useWebCodec), t.preferDecoder = B.getStringOption(e.preferDecoder, "h264"), t.mobileWebMenuType = B.getIntOption(e.mobileWebMenuType, 0), t.showWebMenu = B.getIntOption(e.showWebMenu, 1), t.showWebCloseBtn = B.getIntOption(e.showWebCloseBtn, 0), t.shareUrl = B.getBoolOption(e.shareUrl), t.textInputEventPrompt = B.getNumberBoolOption(e.textInputEventPrompt, !0), t.audioInput = B.getNumberBoolOption(e.audioInput, !1), t.audioInputAutoStart !== null && t.audioInputAutoStart !== void 0) {
18612
18835
  let n = B.getNumberBoolOption(e.audioInputAutoStart, !1);
18613
18836
  t.audioInputAutoStart = t.audioInput && n;
18614
18837
  }
@@ -21601,21 +21824,21 @@ var validator = {
21601
21824
  en(e, "svelte-1we6aa5", "@charset \"UTF-8\";.pxy-render.pxy-render-release.svelte-1we6aa5.svelte-1we6aa5{margin:0;padding:0}.pxy-render.pxy-render-release.svelte-1we6aa5 video.svelte-1we6aa5{transition:none}.pxy-render.pxy-render-release.svelte-1we6aa5 .showVideo.svelte-1we6aa5{position:relative;object-fit:fill;width:100%;min-height:100%}.pxy-render.pxy-render-release.svelte-1we6aa5 .hiddenVideo.svelte-1we6aa5{position:absolute;z-index:-9999;top:-9999px;left:-9999px;object-fit:fill}.pxy-render.pxy-render-release.svelte-1we6aa5 .hiddenRenderCanvas.svelte-1we6aa5{position:absolute;z-index:-9999;top:-9999px;left:-9999px}.pxy-render.pxy-render-release.svelte-1we6aa5 .showRenderCanvas.svelte-1we6aa5{position:relative;object-fit:fill}.pxy-render.pxy-render-release.svelte-1we6aa5 .audio.svelte-1we6aa5{position:absolute;z-index:-9999;top:-9999px;left:-9999px}");
21602
21825
  }
21603
21826
  function ar(e) {
21604
- let t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E, D;
21827
+ let t, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E, D, O;
21605
21828
  return {
21606
21829
  c() {
21607
- t = q("div"), n = q("video"), c = J(), l = q("canvas"), m = J(), h = q("canvas"), b = J(), x = q("audio"), Y(n, "class", r = Xt(e[2] ? "hiddenVideo" : "showVideo") + " svelte-1we6aa5"), Y(n, "width", i = e[0].container.width + "px"), Y(n, "height", a = e[0].container.height + "px"), n.autoplay = e[1], n.playsInline = !0, Y(n, "webkit-playsinline", !0), Y(n, "preload", "auto"), Y(n, "x5-video-player-type", "h5"), Y(n, "x5-video-player-fullscreen", "true"), Y(n, "x5-video-orientation", "portrait"), Y(l, "class", u = Xt(e[2] && e[3] ? "showRenderCanvas" : "hiddenRenderCanvas") + " svelte-1we6aa5"), Y(l, "style", d = "width:" + e[0].container.width + "px; height:" + e[0].container.height + "px"), Y(l, "width", f = e[10](e[0]) + "px"), Y(l, "height", p = e[11](e[0]) + "px"), Y(h, "class", g = Xt(e[2] && !e[3] ? "showRenderCanvas" : "hiddenRenderCanvas") + " svelte-1we6aa5"), Y(h, "style", _ = "width:" + e[0].container.width + "px; height:" + e[0].container.height + "px"), Y(h, "width", v = e[10](e[0]) + "px"), Y(h, "height", y = e[11](e[0]) + "px"), Y(x, "class", "audio svelte-1we6aa5"), x.controls = !1, x.autoplay = !0, Y(t, "class", "pxy-render pxy-render-release svelte-1we6aa5"), Y(t, "width", w = e[0].container.width + "px"), Y(t, "height", T = e[0].container.height + "px");
21830
+ t = q("div"), n = q("video"), l = J(), u = q("canvas"), h = J(), g = q("canvas"), x = J(), S = q("audio"), Y(n, "class", r = Xt(e[2] ? "hiddenVideo" : "showVideo") + " svelte-1we6aa5"), Y(n, "width", i = e[0].container.width + "px"), Y(n, "height", a = e[0].container.height + "px"), n.autoplay = e[1], n.playsInline = !0, Y(n, "disablepictureinpicture", !0), Y(n, "webkit-playsinline", !0), Y(n, "preload", "auto"), Y(n, "x5-video-player-type", "h5"), Y(n, "x5-video-player-fullscreen", "true"), Y(n, "x5-video-orientation", "portrait"), Y(u, "class", d = Xt(e[2] && e[3] ? "showRenderCanvas" : "hiddenRenderCanvas") + " svelte-1we6aa5"), Y(u, "style", f = "width:" + e[0].container.width + "px; height:" + e[0].container.height + "px"), Y(u, "width", p = e[10](e[0]) + "px"), Y(u, "height", m = e[11](e[0]) + "px"), Y(g, "class", _ = Xt(e[2] && !e[3] ? "showRenderCanvas" : "hiddenRenderCanvas") + " svelte-1we6aa5"), Y(g, "style", v = "width:" + e[0].container.width + "px; height:" + e[0].container.height + "px"), Y(g, "width", y = e[10](e[0]) + "px"), Y(g, "height", b = e[11](e[0]) + "px"), Y(S, "class", "audio svelte-1we6aa5"), S.controls = !1, S.autoplay = !0, Y(t, "class", "pxy-render pxy-render-release svelte-1we6aa5"), Y(t, "width", T = e[0].container.width + "px"), Y(t, "height", E = e[0].container.height + "px");
21608
21831
  },
21609
21832
  m(r, i) {
21610
- G(r, t, i), W(t, n), e[30](n), W(t, c), W(t, l), e[31](l), W(t, m), W(t, h), e[32](h), W(t, b), W(t, x), e[33](x), E ||= (D = [on(n, "loadedmetadata", e[8]), on(x, "loadedmetadata", e[9])], !0);
21833
+ G(r, t, i), W(t, n), e[30](n), W(t, l), W(t, u), e[31](u), W(t, h), W(t, g), e[32](g), W(t, x), W(t, S), e[33](S), D ||= (O = [on(n, "loadedmetadata", e[8]), on(S, "loadedmetadata", e[9])], !0);
21611
21834
  },
21612
21835
  p(e, o) {
21613
- 4 & o[0] && r !== (r = Xt(e[2] ? "hiddenVideo" : "showVideo") + " svelte-1we6aa5") && Y(n, "class", r), 1 & o[0] && i !== (i = e[0].container.width + "px") && Y(n, "width", i), 1 & o[0] && a !== (a = e[0].container.height + "px") && Y(n, "height", a), 2 & o[0] && (n.autoplay = e[1]), 12 & o[0] && u !== (u = Xt(e[2] && e[3] ? "showRenderCanvas" : "hiddenRenderCanvas") + " svelte-1we6aa5") && Y(l, "class", u), 1 & o[0] && d !== (d = "width:" + e[0].container.width + "px; height:" + e[0].container.height + "px") && Y(l, "style", d), 1 & o[0] && f !== (f = e[10](e[0]) + "px") && Y(l, "width", f), 1 & o[0] && p !== (p = e[11](e[0]) + "px") && Y(l, "height", p), 12 & o[0] && g !== (g = Xt(e[2] && !e[3] ? "showRenderCanvas" : "hiddenRenderCanvas") + " svelte-1we6aa5") && Y(h, "class", g), 1 & o[0] && _ !== (_ = "width:" + e[0].container.width + "px; height:" + e[0].container.height + "px") && Y(h, "style", _), 1 & o[0] && v !== (v = e[10](e[0]) + "px") && Y(h, "width", v), 1 & o[0] && y !== (y = e[11](e[0]) + "px") && Y(h, "height", y), 1 & o[0] && w !== (w = e[0].container.width + "px") && Y(t, "width", w), 1 & o[0] && T !== (T = e[0].container.height + "px") && Y(t, "height", T);
21836
+ 4 & o[0] && r !== (r = Xt(e[2] ? "hiddenVideo" : "showVideo") + " svelte-1we6aa5") && Y(n, "class", r), 1 & o[0] && i !== (i = e[0].container.width + "px") && Y(n, "width", i), 1 & o[0] && a !== (a = e[0].container.height + "px") && Y(n, "height", a), 2 & o[0] && (n.autoplay = e[1]), 12 & o[0] && d !== (d = Xt(e[2] && e[3] ? "showRenderCanvas" : "hiddenRenderCanvas") + " svelte-1we6aa5") && Y(u, "class", d), 1 & o[0] && f !== (f = "width:" + e[0].container.width + "px; height:" + e[0].container.height + "px") && Y(u, "style", f), 1 & o[0] && p !== (p = e[10](e[0]) + "px") && Y(u, "width", p), 1 & o[0] && m !== (m = e[11](e[0]) + "px") && Y(u, "height", m), 12 & o[0] && _ !== (_ = Xt(e[2] && !e[3] ? "showRenderCanvas" : "hiddenRenderCanvas") + " svelte-1we6aa5") && Y(g, "class", _), 1 & o[0] && v !== (v = "width:" + e[0].container.width + "px; height:" + e[0].container.height + "px") && Y(g, "style", v), 1 & o[0] && y !== (y = e[10](e[0]) + "px") && Y(g, "width", y), 1 & o[0] && b !== (b = e[11](e[0]) + "px") && Y(g, "height", b), 1 & o[0] && T !== (T = e[0].container.width + "px") && Y(t, "width", T), 1 & o[0] && E !== (E = e[0].container.height + "px") && Y(t, "height", E);
21614
21837
  },
21615
21838
  i: Vt,
21616
21839
  o: Vt,
21617
21840
  d(n) {
21618
- n && K(t), e[30](null), e[31](null), e[32](null), e[33](null), E = !1, Wt(D);
21841
+ n && K(t), e[30](null), e[31](null), e[32](null), e[33](null), D = !1, Wt(O);
21619
21842
  }
21620
21843
  };
21621
21844
  }
@@ -23077,7 +23300,7 @@ var validator = {
23077
23300
  })), this._lockPointer = new Bt(document.documentElement), this._lockPointer.on(2, ((e) => {
23078
23301
  o.warn("lock point not support on this platform switch to unlock mode"), this.initCursorMode = 2, this.$emitInfo(p.ui.LOCK_POINTER_FAILED);
23079
23302
  })), this._lockPointer.on(3, ((e) => {
23080
- o.warn("lock point not support on this platform switch to unlock mode. please check https."), this.initCursorMode = 2, this.$emitInfo(p.ui.LOCK_POINTER_FAILED_SECURITY_ERROR);
23303
+ o.warn("lock point not support on this platform switch to unlock mode. please check https."), this.$emitInfo(p.ui.LOCK_POINTER_FAILED_SECURITY_ERROR);
23081
23304
  })), e.handleRootElementSize != null && e.handleRootElementSize != 1 || function() {
23082
23305
  let e = document.getElementsByTagName("html")[0];
23083
23306
  e && e.style && (e.style.margin = "0", e.style.padding = "0", e.style.overflow = "hidden", e.style.width = "100%", e.style.height = "100%");
@@ -23122,8 +23345,8 @@ var validator = {
23122
23345
  this._config.serverAddress = t.origin, this._view.$set({ serverAddress: this._config.serverAddress }), await this.connect(Object.assign(Object.assign({}, e), t.params));
23123
23346
  }
23124
23347
  async connect(e) {
23125
- if (!this._config.authCode) throw o.err("sdk 授权校验失败. 请通过 new LarkSR({authCode: id}) 或 initSDKAuthCode 设置"), /* @__PURE__ */ Error("sdk 授权校验失败. 请通过 new LarkSR({authCode: id}) 或 initSDKAuthCode 设置");
23126
- if (!this._config.serverAddress && !this._config.proxyBasePath) throw Error("服务器地址未设置");
23348
+ if (!this._config.authCode) throw o.err(p.message.AUTHCODE_VERIFICATION_FAILED), Error(p.message.AUTHCODE_VERIFICATION_FAILED);
23349
+ if (!this._config.serverAddress && !this._config.proxyBasePath) throw Error(p.message.SERVER_ADDRESS_NOT_SET);
23127
23350
  try {
23128
23351
  let t = await V.GetStartInfo(V.GetUrl(this._config), Object.assign({ sdkId: this._config.authCode }, e));
23129
23352
  this.waitQueue && this._view.loadingStateMsg && this._view.$set({ loadingStateMsg: "" }), this.setAppliParams(bt(t)), this.emit({
@@ -23458,7 +23681,7 @@ var validator = {
23458
23681
  }
23459
23682
  $emit(e, t = "", n = "") {
23460
23683
  for (let t of wt) if (t == e) {
23461
- V.LogError(e, n + " " + g.GetEventMessageByType(e), "appliId=" + this.params.appliId + "&taskId=" + this.params.taskid, this.config);
23684
+ V.LogError(e, g.GetLogErrorEventMessageByType(e) + ". ErrCode=" + e, "appliId=" + this.params.appliId + "&taskId=" + this.params.taskid, this.config);
23462
23685
  break;
23463
23686
  }
23464
23687
  this.emit(this.createEvent(e, t, n)), this.postMsg(e, t, n);
@@ -23627,12 +23850,12 @@ var validator = {
23627
23850
  let t = B.getNumberBoolOption(e.videoInputAutoStart, !1), n = this._config.videoInputAutoStart == null ? t : this._config.videoInputAutoStart;
23628
23851
  this._params.videoInputAutoStart = this._params.videoInput && n;
23629
23852
  }
23630
- e.liveStreaming !== null && e.liveStreaming !== void 0 && (this._params.liveStreaming = B.getNumberBoolOption(e.liveStreaming, !1)), e.mobileKeyboardType !== null && e.mobileKeyboardType !== void 0 && (this._params.mobileKeyboardType = e.mobileKeyboardType == null ? 0 : e.mobileKeyboardType), e.imeFirstNotice !== null && e.imeFirstNotice !== void 0 && (this._params.imeFirstNotice = e.imeFirstNotice == null ? 1 : e.imeFirstNotice), this.startProcess();
23853
+ e.liveStreaming !== null && e.liveStreaming !== void 0 && (this._params.liveStreaming = B.getNumberBoolOption(e.liveStreaming, !1)), e.mobileKeyboardType !== null && e.mobileKeyboardType !== void 0 && (this._params.mobileKeyboardType = e.mobileKeyboardType == null ? 0 : e.mobileKeyboardType), e.imeFirstNotice !== null && e.imeFirstNotice !== void 0 && (this._params.imeFirstNotice = e.imeFirstNotice == null ? 1 : e.imeFirstNotice), e.taskCloseType !== null && e.taskCloseType !== void 0 && (this._params.taskCloseType = e.taskCloseType == null ? 0 : e.taskCloseType), this.startProcess();
23631
23854
  } else o.info("task 同步中,重新获取", e.status), this._view.$set({ syncApp: !0 }), window.setTimeout((() => {
23632
23855
  this.taskProcess();
23633
23856
  }), 1500);
23634
23857
  } catch (e) {
23635
- this._view.$set({ syncApp: !1 }), this.$emitError("获取Task信息失败 " + JSON.stringify(e));
23858
+ this._view.$set({ syncApp: !1 }), this.$emitError(p.message.GET_TASKINFO_FAIL + JSON.stringify(e));
23636
23859
  }
23637
23860
  }
23638
23861
  startProcess() {
@@ -23726,7 +23949,7 @@ var validator = {
23726
23949
  };
23727
23950
  if (t.isCurrent) {
23728
23951
  if (this.userType != t.userType) {
23729
- let e = t.userType == mi.Player ? "您已获得操作权限" : "您已失去操作权限";
23952
+ let e = t.userType == mi.Player ? p.ui.OBTAIN_OPERATION_PERMISSION : p.ui.LOUSE_OPERATION_PERMISSION;
23730
23953
  this.$emitInfo(e), this.lockPointer.isLockPointer && t.userType != mi.Player && this.lockPointer.exitPointerLock();
23731
23954
  }
23732
23955
  this.params.userType = t.userType, this._uid = t.userId, this._isTaskOwner = t.isTaskOwner, this._op.resetAppMouseLockState(), this._view.$set({ appParams: this._params }), this.screenState.resize(), o.info("upate current player ", t, this.userType, this.params.userType);
@@ -23847,10 +24070,12 @@ var validator = {
23847
24070
  useWebCodec: B.getNumberBoolOption(E.queryString("useWebCodec"), !1),
23848
24071
  mobileWebMenuType: B.getIntOption(E.queryString("mobileWebMenuType"), 0),
23849
24072
  showWebMenu: B.getIntOption(E.queryString("showWebMenu"), 1),
24073
+ showWebCloseBtn: B.getIntOption(E.queryString("showWebCloseBtn"), 0),
23850
24074
  forceResolution: B.getBoolOption(E.queryString("forceResolution"), !1),
23851
24075
  ignoreCloudDesktopResolution: B.getBoolOption(E.queryString("ignoreCloudDesktopResolution"), !0),
23852
24076
  ignoreScreenOrientation: B.getBoolOption(E.queryString("ignoreScreenOrientation"), !0),
23853
- imeFirstNotice: B.getIntOption(E.queryString("imeFirstNotice"), 0)
24077
+ imeFirstNotice: B.getIntOption(E.queryString("imeFirstNotice"), 0),
24078
+ taskCloseType: B.getIntOption(E.queryString("taskCloseType"), 0)
23854
24079
  };
23855
24080
  },
23856
24081
  AppliParamsUtils: B,