ezuikit-js 0.6.5 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/ezuikit.js +88 -65
  2. package/package.json +1 -1
package/ezuikit.js CHANGED
@@ -275,57 +275,6 @@ var request = function request(url, method, params, header, success, error) {
275
275
  }
276
276
  http_request.send(data);
277
277
  };
278
- // 增加防抖函数
279
- var debouncePromise = function debouncePromise(fn, delay) {
280
- var immdiate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
281
- var timer = null;
282
- var isInvoke = false;
283
- return function _debounce() {
284
- var _this = this;
285
- for (var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++) {
286
- arg[_key] = arguments[_key];
287
- }
288
- return new Promise(function (resolve, reject) {
289
- if (timer) {
290
- console.log("防抖, delay 后执行", timer, delay, fn);
291
- clearTimeout(timer);
292
- }
293
- // 双击执行2次
294
- if (immdiate && !isInvoke) {
295
- console.log("防抖 第一次执行...", isInvoke, fn);
296
- isInvoke = true;
297
- fn.apply(_this, arg).then(function () {
298
- resolve();
299
- })["catch"](function (err) {
300
- console.log("防抖,err", err);
301
- reject();
302
- });
303
- setTimeout(function () {
304
- isInvoke = false;
305
- }, delay);
306
- } else {
307
- if (isInvoke) {
308
- console.log("操作过于频繁,仅支持" + delay + "ms时间内切换一次");
309
- reject({
310
- code: -1,
311
- msg: "操作过于频繁,仅支持" + delay + "ms时间内切换一次"
312
- });
313
- return false;
314
- }
315
- timer = setTimeout(function () {
316
- console.log("防抖 执行...", fn);
317
- fn.apply(_this, arg).then(function () {
318
- resolve();
319
- })["catch"](function (err) {
320
- console.log("防抖,err", err);
321
- reject();
322
- });
323
- isInvoke = false;
324
- }, delay);
325
- }
326
- });
327
- };
328
- };
329
278
 
330
279
  var HLS = /*#__PURE__*/function () {
331
280
  function HLS(videoId, url) {
@@ -31141,6 +31090,62 @@ var Monitor = /*#__PURE__*/function () {
31141
31090
  });
31142
31091
  var EZUIKitV3$1 = EZUIKitV3;
31143
31092
 
31093
+ /* global setTimeout, clearTimeout */
31094
+ var dist = function debounce(fn) {
31095
+ var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
31096
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
31097
+ var lastCallAt = void 0;
31098
+ var deferred = void 0;
31099
+ var timer = void 0;
31100
+ var pendingArgs = [];
31101
+ return function debounced() {
31102
+ var currentWait = getWait(wait);
31103
+ var currentTime = new Date().getTime();
31104
+ var isCold = !lastCallAt || currentTime - lastCallAt > currentWait;
31105
+ lastCallAt = currentTime;
31106
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
31107
+ args[_key] = arguments[_key];
31108
+ }
31109
+ if (isCold && options.leading) {
31110
+ return options.accumulate ? Promise.resolve(fn.call(this, [args])).then(function (result) {
31111
+ return result[0];
31112
+ }) : Promise.resolve(fn.call.apply(fn, [this].concat(args)));
31113
+ }
31114
+ if (deferred) {
31115
+ clearTimeout(timer);
31116
+ } else {
31117
+ deferred = defer();
31118
+ }
31119
+ pendingArgs.push(args);
31120
+ timer = setTimeout(flush.bind(this), currentWait);
31121
+ if (options.accumulate) {
31122
+ var argsIndex = pendingArgs.length - 1;
31123
+ return deferred.promise.then(function (results) {
31124
+ return results[argsIndex];
31125
+ });
31126
+ }
31127
+ return deferred.promise;
31128
+ };
31129
+ function flush() {
31130
+ var thisDeferred = deferred;
31131
+ clearTimeout(timer);
31132
+ Promise.resolve(options.accumulate ? fn.call(this, pendingArgs) : fn.apply(this, pendingArgs[pendingArgs.length - 1])).then(thisDeferred.resolve, thisDeferred.reject);
31133
+ pendingArgs = [];
31134
+ deferred = null;
31135
+ }
31136
+ };
31137
+ function getWait(wait) {
31138
+ return typeof wait === 'function' ? wait() : wait;
31139
+ }
31140
+ function defer() {
31141
+ var deferred = {};
31142
+ deferred.promise = new Promise(function (resolve, reject) {
31143
+ deferred.resolve = resolve;
31144
+ deferred.reject = reject;
31145
+ });
31146
+ return deferred;
31147
+ }
31148
+
31144
31149
  /**
31145
31150
  * Created by wangweijie5 on 2016/12/16.
31146
31151
  */
@@ -31737,6 +31742,9 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
31737
31742
  function EZUIKitPlayer(params) {
31738
31743
  var _this = this;
31739
31744
  _classCallCheck$1(this, EZUIKitPlayer);
31745
+ // 解决当ws连接建立但是没有推流导致未触发播放成功事件,
31746
+ // 此时切换设备执行 播放器 stop 时触发了播放成功事件导致设备序列号重置
31747
+ this.isStoping = false; // 是否在播放前 stop 执行过程中
31740
31748
  var _params$autoplay = params.autoplay,
31741
31749
  autoplay = _params$autoplay === void 0 ? true : _params$autoplay;
31742
31750
  // 如果设置了模板(除精简版),此处不自动播放,根据模板判断是否执行自动播放:
@@ -31967,14 +31975,15 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
31967
31975
  return new EZUIKitV3$1.EZUIKitPlayer(params);
31968
31976
  }
31969
31977
  // this.stop = debouncePromise(()=>this._stop(),0,true);
31970
- this.play = debouncePromise(function (options) {
31978
+ this.play = dist(function (options) {
31971
31979
  return _this._play(options);
31972
- }, 1000, true);
31973
- // this.pause = debouncePromise(()=>this._pause(),1000,true);
31974
- this.resume = debouncePromise(function (time) {
31980
+ }, 500, true);
31981
+ this.resume = dist(function (time) {
31975
31982
  return _this._resume(time);
31976
- }, 1000, true);
31977
- //this.changePlayUrl = debouncePromise((time)=>this._changePlayUrl(time),1000,true);
31983
+ }, 500, true);
31984
+ this.changePlayUrl = dist(function (options) {
31985
+ return _this._changePlayUrl(options);
31986
+ }, 500);
31978
31987
  // 监听到页面退出
31979
31988
  // 研究院反馈,播放过程中退出页面需要执行停止视频,否则可能导致浏览器崩溃
31980
31989
  window.addEventListener("beforeunload", function () {
@@ -32211,6 +32220,7 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32211
32220
  key: "_getRealUrlPromise",
32212
32221
  value: function _getRealUrlPromise(accessToken, url) {
32213
32222
  var _this3 = this;
32223
+ console.log("\u83B7\u53D6\u64AD\u653E\u5730\u5740 url => ".concat(url, " ").concat(this.accessToken));
32214
32224
  var apiDomain = this.env.domain;
32215
32225
  if (this.env) {
32216
32226
  apiDomain = this.env.domain;
@@ -32520,7 +32530,7 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32520
32530
  key: "_pluginPlay",
32521
32531
  value: function _pluginPlay(data, successCallback, errorCallback) {
32522
32532
  var _this4 = this;
32523
- console.log("get real url result ===", data);
32533
+ console.log("执行播放 _pluginPlay", data);
32524
32534
  if (!data) {
32525
32535
  return false;
32526
32536
  }
@@ -32543,8 +32553,17 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32543
32553
  var wsParams = {
32544
32554
  playURL: getPlayParams(data).websocketStreamingParam
32545
32555
  };
32556
+ console.log('播放前 stop 阶段 结束');
32557
+ this.isStoping = false;
32558
+ var now = Date.now();
32559
+ console.log('执行播放 ... this.jSPlugin.JS_Play at ', now);
32546
32560
  this.jSPlugin.JS_Play(wsUrl, wsParams, 0).then(function () {
32547
- console.log("播放成功");
32561
+ console.log("执行播放 ... this.jSPlugin.JS_Play 播放成功", wsUrl, wsParams);
32562
+ console.log("执行播放耗时 ", Date.now() - now);
32563
+ if (_this4.isStoping) {
32564
+ console.log('现在在播放前 stop 阶段,此次应为无效播放成功触发。不执行后续回调, 此次耗时无效');
32565
+ return;
32566
+ }
32548
32567
  if (_this4.validateCode && typeof _this4.jSPlugin.decoderVersion !== 'undefined' && _this4.jSPlugin.decoderVersion === '2.0') {
32549
32568
  _this4.jSPlugin.JS_SetSecretKey(0, _this4.validateCode);
32550
32569
  }
@@ -32646,6 +32665,7 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32646
32665
  key: "_play",
32647
32666
  value: function _play(options) {
32648
32667
  var _this5 = this;
32668
+ console.log("\u6267\u884C\u64AD\u653E play options.url =>", options);
32649
32669
  this.pluginStatus.setPlayStatus({
32650
32670
  play: false,
32651
32671
  loading: true
@@ -32672,8 +32692,10 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32672
32692
  }
32673
32693
  }
32674
32694
  var promise = new Promise(function (resolve, reject) {
32695
+ console.log('执行 播放前 stop');
32696
+ _this5.isStoping = true;
32675
32697
  _this5.jSPlugin.JS_Stop(0).then(function () {
32676
- console.log("play_stop- success");
32698
+ console.log("\u64AD\u653E\u524D stop \u6267\u884C\u6210\u529F this.url => ".concat(_this5.url, " ").concat(_this5.accessToken));
32677
32699
  _this5._getRealUrlPromise(_this5.accessToken, _this5.url).then(function (data) {
32678
32700
  _this5._pluginPlay(data, function () {
32679
32701
  return resolve(true);
@@ -32787,26 +32809,27 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32787
32809
  }
32788
32810
  }
32789
32811
  }, {
32790
- key: "changePlayUrl",
32791
- value: function changePlayUrl(options) {
32812
+ key: "_changePlayUrl",
32813
+ value: function _changePlayUrl(options) {
32792
32814
  var _this8 = this;
32815
+ console.log('_changePlayUrl');
32793
32816
  this.reSetTheme();
32794
32817
  var initUrl = this.url;
32795
32818
  var url = matchUrl(initUrl, options);
32796
32819
  if (options.accessToken) {
32797
32820
  this.accessToken = options.accessToken;
32798
32821
  }
32822
+ this.url = url;
32799
32823
  var promise = new Promise(function (resolve, reject) {
32800
- console.log("changePlayUrl stop success");
32801
32824
  var changePlayUrlParams = {
32802
32825
  url: url
32803
32826
  };
32804
32827
  if (options.accessToken) {
32805
32828
  changePlayUrlParams["accessToken"] = options.accessToken;
32806
32829
  }
32807
- console.log("changePlayUrlParams", changePlayUrlParams);
32830
+ console.log("切换播放地址 参数 ", changePlayUrlParams);
32808
32831
  return _this8.play(changePlayUrlParams).then(function () {
32809
- console.log("changePlayUrl replay success");
32832
+ console.log("切换播放地址 play 执行成功 ", url);
32810
32833
  _this8.url = url;
32811
32834
  // 当前处于网页全屏状态
32812
32835
  if (_this8.Theme && _this8.Theme.decoderState.state.webExpend) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ezuikit-js",
3
3
  "maintainers": ["jzy"],
4
- "version": "0.6.5",
4
+ "version": "0.6.6",
5
5
  "description": "ezuikit javascript for npm",
6
6
  "main": "ezuikit.js",
7
7
  "scripts": {