@byteplus/veplayer-plugin 2.5.0-rc.1 → 2.6.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/esm/index.development.css +1 -1
  2. package/esm/index.development.js +1845 -530
  3. package/esm/index.production.css +1 -1
  4. package/esm/index.production.js +4 -4
  5. package/esm/veplayer.plugin.abr.development.js +12 -0
  6. package/esm/veplayer.plugin.abr.production.js +1 -1
  7. package/esm/veplayer.plugin.ad.development.css +1 -1
  8. package/esm/veplayer.plugin.ad.development.js +111 -39
  9. package/esm/veplayer.plugin.ad.production.css +1 -1
  10. package/esm/veplayer.plugin.ad.production.js +2 -2
  11. package/esm/veplayer.plugin.drm.development.js +12 -0
  12. package/esm/veplayer.plugin.drm.production.js +1 -1
  13. package/esm/veplayer.plugin.flv.development.js +670 -193
  14. package/esm/veplayer.plugin.flv.production.js +1 -1
  15. package/esm/veplayer.plugin.hls.development.js +1159 -369
  16. package/esm/veplayer.plugin.hls.production.js +1 -1
  17. package/esm/veplayer.plugin.mp4.development.js +13 -1
  18. package/esm/veplayer.plugin.mp4.production.js +1 -1
  19. package/esm/veplayer.plugin.rtm.development.js +13 -1
  20. package/esm/veplayer.plugin.rtm.production.js +1 -1
  21. package/esm/veplayer.plugin.shaka.development.js +12 -0
  22. package/esm/veplayer.plugin.shaka.production.js +1 -1
  23. package/package.json +1 -1
  24. package/umd/veplayer.plugin.abr.development.js +12 -0
  25. package/umd/veplayer.plugin.abr.production.js +1 -1
  26. package/umd/veplayer.plugin.ad.development.css +1 -1
  27. package/umd/veplayer.plugin.ad.development.js +111 -39
  28. package/umd/veplayer.plugin.ad.production.css +1 -1
  29. package/umd/veplayer.plugin.ad.production.js +1 -1
  30. package/umd/veplayer.plugin.drm.development.js +12 -0
  31. package/umd/veplayer.plugin.drm.production.js +1 -1
  32. package/umd/veplayer.plugin.flv.development.js +670 -193
  33. package/umd/veplayer.plugin.flv.production.js +1 -1
  34. package/umd/veplayer.plugin.hls.development.js +1126 -336
  35. package/umd/veplayer.plugin.hls.production.js +1 -1
  36. package/umd/veplayer.plugin.mp4.development.js +13 -1
  37. package/umd/veplayer.plugin.mp4.production.js +1 -1
  38. package/umd/veplayer.plugin.rtm.development.js +13 -1
  39. package/umd/veplayer.plugin.rtm.production.js +1 -1
  40. package/umd/veplayer.plugin.shaka.development.js +12 -0
  41. package/umd/veplayer.plugin.shaka.production.js +1 -1
@@ -1,4 +1,4 @@
1
- .xgplayer-ads{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;display:none}.xgplayer-ad-start .xgplayer-ads{display:block}
1
+ .xgplayer-ads{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;display:none}.xgplayer-ad-start .xgplayer-ads{display:block}.xgplayer-ad-show-ui .xgplayer-replay{display:none!important}
2
2
  .xgplayer.xgplayer-ads-playing .xgplayer-start,
3
3
  .xgplayer.xgplayer-ads-playing .xgplayer-replay {
4
4
  display: none;
@@ -2464,8 +2464,11 @@
2464
2464
  var AD_PLAY = "ad_play";
2465
2465
  var AD_PAUSE = "ad_pause";
2466
2466
  var AD_TIME_UPDATE = "ad_time_update";
2467
+ var AD_SKIPPED = "ad_skipped";
2468
+ var AD_ERROR = "ad_error";
2467
2469
  var AD_COMPLETE = "ad_complete";
2468
2470
  var AD_ALL_COMPLETED = "ad_all_completed";
2471
+ var IMA_SDK_LOAD_START = "ima_sdk_load_start";
2469
2472
  var IMA_SDK_LOAD_SUCCESS = "ima_sdk_load_success";
2470
2473
  var IMA_SDK_LOAD_ERROR = "ima_sdk_load_error";
2471
2474
  var IMA_AD_LOADER_READY = "ima_ad_loader_ready";
@@ -4756,6 +4759,18 @@
4756
4759
  }
4757
4760
  }
4758
4761
  }
4762
+ }, {
4763
+ key: "defineMethod",
4764
+ value: function defineMethod(Obj, map2) {
4765
+ for (var key in map2) {
4766
+ if (Object.prototype.hasOwnProperty.call(map2, key) && typeof map2[key] === "function") {
4767
+ Object.defineProperty(Obj, key, {
4768
+ configurable: true,
4769
+ value: map2[key]
4770
+ });
4771
+ }
4772
+ }
4773
+ }
4759
4774
  }, {
4760
4775
  key: "defaultConfig",
4761
4776
  get: function get2() {
@@ -6715,7 +6730,7 @@
6715
6730
  }, {
6716
6731
  key: "toggleFullScreen",
6717
6732
  value: function toggleFullScreen(e) {
6718
- if (e) {
6733
+ if (e instanceof Event) {
6719
6734
  e.preventDefault();
6720
6735
  e.stopPropagation();
6721
6736
  }
@@ -7984,16 +7999,18 @@
7984
7999
  _this._handleAdError(ev.getError());
7985
8000
  });
7986
8001
  _defineProperty$2(_assertThisInitialized$1(_this), "_handleAdError", function(error) {
7987
- var _this$adsManager3;
8002
+ var _this$adsManager3, _this$plugin, _this$plugin2;
7988
8003
  logger$1.log("AdError", error);
7989
8004
  _this.shouldBlockVideoContent = false;
7990
8005
  _this.isLinearAdRunning = false;
7991
8006
  (_this$adsManager3 = _this.adsManager) === null || _this$adsManager3 === void 0 ? void 0 : _this$adsManager3.destroy();
7992
- _this.player.emit(IMA_AD_ERROR, error);
8007
+ (_this$plugin = _this.plugin) === null || _this$plugin === void 0 ? void 0 : _this$plugin.emit(IMA_AD_ERROR, error);
8008
+ (_this$plugin2 = _this.plugin) === null || _this$plugin2 === void 0 ? void 0 : _this$plugin2.emit(AD_ERROR, error);
7993
8009
  });
7994
8010
  _defineProperty$2(_assertThisInitialized$1(_this), "onAdEvent", function(ev) {
7995
8011
  var _assertThisInitialize2 = _assertThisInitialized$1(_this), player = _assertThisInitialize2.player;
7996
8012
  var ad = ev === null || ev === void 0 ? void 0 : ev.getAd();
8013
+ var adData = (ev === null || ev === void 0 ? void 0 : ev.getAdData()) || (ad === null || ad === void 0 ? void 0 : ad.data);
7997
8014
  var intervalTimer;
7998
8015
  var printJsonLog = false;
7999
8016
  switch (ev === null || ev === void 0 ? void 0 : ev.type) {
@@ -8004,7 +8021,7 @@
8004
8021
  break;
8005
8022
  }
8006
8023
  case google.ima.AdEvent.Type.LOADED: {
8007
- var _ev$getAdData = ev.getAdData(), adPodInfo = _ev$getAdData.adPodInfo;
8024
+ var _ref = adData || {}, adPodInfo = _ref.adPodInfo;
8008
8025
  var isPreroll = (adPodInfo === null || adPodInfo === void 0 ? void 0 : adPodInfo.podIndex) === 0;
8009
8026
  printJsonLog = true;
8010
8027
  if (isPreroll) {
@@ -8015,8 +8032,13 @@
8015
8032
  _this.tryContentPlay();
8016
8033
  }
8017
8034
  }
8035
+ _this.emit(IMA_AD_LOADED, {
8036
+ ad,
8037
+ isPreroll
8038
+ });
8018
8039
  _this.plugin.emit(IMA_AD_LOADED, {
8019
- ad
8040
+ ad,
8041
+ isPreroll
8020
8042
  });
8021
8043
  break;
8022
8044
  }
@@ -8065,8 +8087,14 @@
8065
8087
  });
8066
8088
  break;
8067
8089
  }
8090
+ case google.ima.AdEvent.Type.SKIPPED: {
8091
+ _this.plugin.emit(AD_SKIPPED, {
8092
+ ad
8093
+ });
8094
+ break;
8095
+ }
8068
8096
  case google.ima.AdEvent.Type.AD_PROGRESS: {
8069
- var _ev$getAdData2 = ev.getAdData(), currentTime = _ev$getAdData2.currentTime, duration = _ev$getAdData2.duration;
8097
+ var _ev$getAdData = ev.getAdData(), currentTime = _ev$getAdData.currentTime, duration = _ev$getAdData.duration;
8070
8098
  Object.assign(_this.context, {
8071
8099
  currentTime,
8072
8100
  duration
@@ -8077,14 +8105,21 @@
8077
8105
  break;
8078
8106
  }
8079
8107
  case google.ima.AdEvent.Type.COMPLETE: {
8108
+ var _ref2 = adData || {}, _adPodInfo = _ref2.adPodInfo;
8109
+ var hasNextInPod = false;
8080
8110
  if (ad !== null && ad !== void 0 && ad.isLinear()) {
8111
+ if (_adPodInfo) {
8112
+ hasNextInPod = _adPodInfo.adPosition < _adPodInfo.totalAds;
8113
+ }
8081
8114
  clearInterval(intervalTimer);
8082
8115
  }
8083
8116
  _this.plugin.emit(IMA_AD_COMPLETE, {
8084
- ad
8117
+ ad,
8118
+ hasNextInPod
8085
8119
  });
8086
8120
  _this.plugin.emit(AD_COMPLETE, {
8087
- ad
8121
+ ad,
8122
+ hasNextInPod
8088
8123
  });
8089
8124
  break;
8090
8125
  }
@@ -8123,30 +8158,31 @@
8123
8158
  case 0:
8124
8159
  this.shouldBlockVideoContent = !!(this.config.adTagUrl || this.config.adsResponse || this.config.adsRequest);
8125
8160
  _context.prev = 1;
8126
- _context.next = 4;
8161
+ this.emit(IMA_SDK_LOAD_START);
8162
+ _context.next = 5;
8127
8163
  return this._loadIMASdk();
8128
- case 4:
8164
+ case 5:
8129
8165
  this.emit(IMA_SDK_LOAD_SUCCESS);
8130
- _context.next = 13;
8166
+ _context.next = 14;
8131
8167
  break;
8132
- case 7:
8133
- _context.prev = 7;
8168
+ case 8:
8169
+ _context.prev = 8;
8134
8170
  _context.t0 = _context["catch"](1);
8135
8171
  logger$1.error("google.ima sdk is not loaded, due to error", (_context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) || _context.t0);
8136
8172
  this.emit(IMA_SDK_LOAD_ERROR);
8137
8173
  this.shouldBlockVideoContent = false;
8138
8174
  return _context.abrupt("return");
8139
- case 13:
8175
+ case 14:
8140
8176
  this._initConfig();
8141
8177
  this._initMediaEvents();
8142
8178
  this._initContainer();
8143
8179
  this._initLoader();
8144
8180
  this._initAdsRequest();
8145
- case 18:
8181
+ case 19:
8146
8182
  case "end":
8147
8183
  return _context.stop();
8148
8184
  }
8149
- }, _callee, this, [[1, 7]]);
8185
+ }, _callee, this, [[1, 8]]);
8150
8186
  }));
8151
8187
  function init() {
8152
8188
  return _init.apply(this, arguments);
@@ -8403,14 +8439,14 @@
8403
8439
  _context3.next = 4;
8404
8440
  return Promise.all([autoplay ? index.video({
8405
8441
  timeout
8406
- }).then(function(_ref) {
8407
- var result = _ref.result;
8442
+ }).then(function(_ref3) {
8443
+ var result = _ref3.result;
8408
8444
  return result;
8409
8445
  }) : Promise.resolve(false), autoplay && this.player.config.autoplayMuted ? index.video({
8410
8446
  timeout,
8411
8447
  muted: true
8412
- }).then(function(_ref2) {
8413
- var result = _ref2.result;
8448
+ }).then(function(_ref4) {
8449
+ var result = _ref4.result;
8414
8450
  return result;
8415
8451
  }) : Promise.resolve(false)]);
8416
8452
  case 4:
@@ -8436,7 +8472,8 @@
8436
8472
  return ImaAdManager2;
8437
8473
  }(BaseAdManager);
8438
8474
  var AD_STATE_CLASS = {
8439
- START: "xgplayer-ad-start"
8475
+ START: "xgplayer-ad-start",
8476
+ UI_SHOW: "xgplayer-ad-show-ui"
8440
8477
  };
8441
8478
  var AdPlayIcon = /* @__PURE__ */ function(_PlayIcon) {
8442
8479
  _inherits$1(AdPlayIcon2, _PlayIcon);
@@ -8588,9 +8625,9 @@
8588
8625
  return AdTimeIcon2;
8589
8626
  }(Time);
8590
8627
  var AdUIManager = /* @__PURE__ */ function() {
8591
- function AdUIManager2(config, _ref) {
8592
- var player = _ref.player, plugin2 = _ref.plugin;
8628
+ function AdUIManager2(config, options) {
8593
8629
  _classCallCheck$2(this, AdUIManager2);
8630
+ var player = options.player, plugin2 = options.plugin;
8594
8631
  this.player = player;
8595
8632
  this.config = config;
8596
8633
  this.adPlugin = plugin2;
@@ -8605,8 +8642,8 @@
8605
8642
  key: "init",
8606
8643
  value: function init() {
8607
8644
  var player = this.player, adUIPlugins = this.adUIPlugins, fragment = this.fragment, decoratedAdPluginList = this.decoratedAdPluginList;
8608
- decoratedAdPluginList.forEach(function(_ref2) {
8609
- var _ref3 = _slicedToArray(_ref2, 2), targetClass = _ref3[0], decoratorClass = _ref3[1];
8645
+ decoratedAdPluginList.forEach(function(_ref) {
8646
+ var _ref2 = _slicedToArray(_ref, 2), targetClass = _ref2[0], decoratorClass = _ref2[1];
8610
8647
  var targetPlugin = player.getPlugin(targetClass.pluginName);
8611
8648
  if (targetPlugin) {
8612
8649
  var newDecoratorPlugin = null;
@@ -8619,6 +8656,15 @@
8619
8656
  }
8620
8657
  });
8621
8658
  }
8659
+ }, {
8660
+ key: "destroy",
8661
+ value: function destroy() {
8662
+ this.fragment = null;
8663
+ this.adUIPlugins = [];
8664
+ this.decoratedAdPluginList = [];
8665
+ this.adPlugin = null;
8666
+ this.player = null;
8667
+ }
8622
8668
  }, {
8623
8669
  key: "initEvents",
8624
8670
  value: function initEvents() {
@@ -8634,7 +8680,16 @@
8634
8680
  adPlugin.on(AD_START, function() {
8635
8681
  _this.showAdContainer();
8636
8682
  });
8637
- adPlugin.on(AD_COMPLETE, function() {
8683
+ adPlugin.on(AD_COMPLETE, function(_ref3) {
8684
+ var hasNextInPod = _ref3.hasNextInPod;
8685
+ if (!hasNextInPod) {
8686
+ _this.hideAdContainer();
8687
+ }
8688
+ });
8689
+ adPlugin.on(AD_SKIPPED, function() {
8690
+ _this.hideAdContainer();
8691
+ });
8692
+ adPlugin.on(AD_ERROR, function() {
8638
8693
  _this.hideAdContainer();
8639
8694
  });
8640
8695
  }
@@ -8690,6 +8745,7 @@
8690
8745
  this.hideControls();
8691
8746
  }
8692
8747
  this.showAdContainer();
8748
+ player.addClass(AD_STATE_CLASS.UI_SHOW);
8693
8749
  }
8694
8750
  }, {
8695
8751
  key: "hideAdUI",
@@ -8740,6 +8796,7 @@
8740
8796
  }, 10);
8741
8797
  });
8742
8798
  }
8799
+ player.removeClass(AD_STATE_CLASS.UI_SHOW);
8743
8800
  }
8744
8801
  }, {
8745
8802
  key: "hideControls",
@@ -8816,7 +8873,7 @@
8816
8873
  _createClass$2(AdsPlugin2, [{
8817
8874
  key: "version",
8818
8875
  get: function get2() {
8819
- return "3.0.20-alpha.7";
8876
+ return "3.0.20-alpha.8";
8820
8877
  }
8821
8878
  }, {
8822
8879
  key: "paused",
@@ -8885,6 +8942,18 @@
8885
8942
  config: this.config.ima,
8886
8943
  displayContainer: this.root
8887
8944
  });
8945
+ this.csManager.once(IMA_SDK_LOAD_START, function() {
8946
+ _this.uiManager.showAdContainer();
8947
+ });
8948
+ this.csManager.on(IMA_SDK_LOAD_ERROR, function() {
8949
+ _this.uiManager.hideAdContainer();
8950
+ });
8951
+ this.csManager.once(IMA_AD_LOADED, function(_ref) {
8952
+ var isPreroll = _ref.isPreroll;
8953
+ if (!isPreroll) {
8954
+ _this.uiManager.hideAdContainer();
8955
+ }
8956
+ });
8888
8957
  this.csManager.once(IMA_READY_TO_PLAY, function() {
8889
8958
  var _this$initPromise;
8890
8959
  (_this$initPromise = _this.initPromise) === null || _this$initPromise === void 0 ? void 0 : _this$initPromise.resolve();
@@ -8924,8 +8993,10 @@
8924
8993
  }, {
8925
8994
  key: "destroy",
8926
8995
  value: function destroy() {
8927
- var _this$csManager9;
8996
+ var _this$csManager9, _this$uiManager;
8997
+ this.offAll();
8928
8998
  (_this$csManager9 = this.csManager) === null || _this$csManager9 === void 0 ? void 0 : _this$csManager9.destroy();
8999
+ (_this$uiManager = this.uiManager) === null || _this$uiManager === void 0 ? void 0 : _this$uiManager.destroy();
8929
9000
  }
8930
9001
  }, {
8931
9002
  key: "reset",
@@ -12980,7 +13051,7 @@
12980
13051
  var sort = sort$1;
12981
13052
  var _sortInstanceProperty = /* @__PURE__ */ getDefaultExportFromCjs(sort);
12982
13053
  function scheduleToVmap(schedule) {
12983
- var _context;
13054
+ var _context, _context2;
12984
13055
  if (!schedule || !schedule.length) {
12985
13056
  return;
12986
13057
  }
@@ -12990,7 +13061,10 @@
12990
13061
  var midRollCount = 0;
12991
13062
  var curMidRoll;
12992
13063
  var curMidRollAdsCount = 0;
12993
- _forEachInstanceProperty(_context = _sortInstanceProperty(schedule).call(schedule, function(a, b) {
13064
+ _forEachInstanceProperty(_context = _sortInstanceProperty(_context2 = _filterInstanceProperty(schedule).call(schedule, function(_ref) {
13065
+ var offset = _ref.offset;
13066
+ return offset === "pre" || offset === "post" || /^(\d\d):([0-5]\d):([0-5]\d)(.\d\d\d)?$/.test(offset);
13067
+ })).call(_context2, function(a, b) {
12994
13068
  if (a.offset === "pre" || b.offset === "post") {
12995
13069
  return -1;
12996
13070
  }
@@ -12998,9 +13072,9 @@
12998
13072
  return 1;
12999
13073
  }
13000
13074
  return Date.parse("2024-01-01T".concat(a.offset)) < Date.parse("2024-01-01T".concat(b.offset)) ? -1 : 1;
13001
- })).call(_context, function(_ref) {
13002
- var _context2;
13003
- var offset = _ref.offset, type = _ref.type, tag = _ref.tag;
13075
+ })).call(_context, function(_ref2) {
13076
+ var _context3;
13077
+ var offset = _ref2.offset, type = _ref2.type, tag = _ref2.tag;
13004
13078
  var timeOffset;
13005
13079
  var breakId;
13006
13080
  switch (offset) {
@@ -13030,7 +13104,7 @@
13030
13104
  adBreakElement.setAttribute("breakType", type || "linear");
13031
13105
  root[0].appendChild(adBreakElement);
13032
13106
  var adSourceElement = vmapXml.createElement("vmap:AdSource");
13033
- adSourceElement.setAttribute("id", _concatInstanceProperty(_context2 = "".concat(breakId, "-ad-")).call(_context2, curMidRollAdsCount));
13107
+ adSourceElement.setAttribute("id", _concatInstanceProperty(_context3 = "".concat(breakId, "-ad-")).call(_context3, curMidRollAdsCount));
13034
13108
  adSourceElement.setAttribute("allowMultipleAds", "true");
13035
13109
  adSourceElement.setAttribute("followRedirects", "true");
13036
13110
  adBreakElement.appendChild(adSourceElement);
@@ -13064,10 +13138,10 @@
13064
13138
  var ad = _ref.ad;
13065
13139
  if (isPrerollAd(ad)) {
13066
13140
  var _this$player$plugins$, _this$player$plugins$2;
13067
- (_this$player$plugins$ = (_this$player$plugins$2 = _this.player.plugins.autoplayplugin).handleAutoplayStart) === null || _this$player$plugins$ === void 0 ? void 0 : _this$player$plugins$.call(_this$player$plugins$2);
13141
+ (_this$player$plugins$ = _this.player.plugins.autoplayplugin) === null || _this$player$plugins$ === void 0 || (_this$player$plugins$2 = _this$player$plugins$.handleAutoplayStart) === null || _this$player$plugins$2 === void 0 ? void 0 : _this$player$plugins$2.call(_this$player$plugins$);
13068
13142
  _this.player.once(VOLUME_CHANGE, function() {
13069
13143
  var _this$player$plugins$3, _this$player$plugins$4;
13070
- (_this$player$plugins$3 = (_this$player$plugins$4 = _this.player.plugins.autoplayplugin).initState) === null || _this$player$plugins$3 === void 0 ? void 0 : _this$player$plugins$3.call(_this$player$plugins$4);
13144
+ (_this$player$plugins$3 = _this.player.plugins.autoplayplugin) === null || _this$player$plugins$3 === void 0 || (_this$player$plugins$4 = _this$player$plugins$3.initState) === null || _this$player$plugins$4 === void 0 ? void 0 : _this$player$plugins$4.call(_this$player$plugins$3);
13071
13145
  });
13072
13146
  }
13073
13147
  });
@@ -13108,9 +13182,7 @@
13108
13182
  if (!((_this$config$ima2 = this.config.ima) !== null && _this$config$ima2 !== void 0 && _this$config$ima2.adTagUrl) && (_this$config$ima3 = this.config.ima) !== null && _this$config$ima3 !== void 0 && (_this$config$ima3 = _this$config$ima3.schedule) !== null && _this$config$ima3 !== void 0 && _this$config$ima3.length) {
13109
13183
  this.config.ima.adsResponse = scheduleToVmap(this.config.ima.schedule);
13110
13184
  }
13111
- if (this.player.plugins.autoplayplugin) {
13112
- this.player.once(AD_PLAY, this._handlePrerollMuted);
13113
- }
13185
+ this.player.once(AD_PLAY, this._handlePrerollMuted);
13114
13186
  }
13115
13187
  }], [{
13116
13188
  key: "pluginName",
@@ -1 +1 @@
1
- .xgplayer-ads{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;display:none}.xgplayer-ad-start .xgplayer-ads{display:block}.xgplayer.xgplayer-ads-playing .xgplayer-start,.xgplayer.xgplayer-ads-playing .xgplayer-replay{display:none}.xgplayer.xgplayer-ads-playing .xgplayer-ads{z-index:6}.xgplayer.xgplayer-ads-playing.xgplayer-is-enter .xgplayer-enter{display:none}
1
+ .xgplayer-ads{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;display:none}.xgplayer-ad-start .xgplayer-ads{display:block}.xgplayer-ad-show-ui .xgplayer-replay{display:none!important}.xgplayer.xgplayer-ads-playing .xgplayer-start,.xgplayer.xgplayer-ads-playing .xgplayer-replay{display:none}.xgplayer.xgplayer-ads-playing .xgplayer-ads{z-index:6}.xgplayer.xgplayer-ads-playing.xgplayer-is-enter .xgplayer-enter{display:none}