cloudinary-video-player 2.3.4-edge.5 → 2.3.4-edge.7

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.
@@ -545,21 +545,20 @@
545
545
  }
546
546
  }
547
547
  .cld-video-player .vjs-text-track-display {
548
- margin: auto;
549
- bottom: 0 !important;
550
- }
551
-
552
- .cld-video-player .vjs-text-track-display > div {
553
- margin: 3% !important;
548
+ bottom: 5em;
549
+ z-index: 2;
554
550
  }
555
551
 
556
552
  .cld-video-player .vjs-text-track-display.cld-paced-text-tracks b {
557
553
  color: var(--color-accent);
558
554
  }
559
555
 
556
+ .cld-video-player.vjs-controls-disabled .vjs-text-track-display, .cld-video-player.vjs-user-inactive.vjs-playing .vjs-text-track-display {
557
+ bottom: 1em;
558
+ }
559
+
560
560
  .cld-video-player .vjs-text-track-cue {
561
- top: auto !important;
562
- bottom: 3.4rem !important;
561
+ max-width: 100%;
563
562
  }
564
563
 
565
564
  .cld-video-player .vjs-text-track-cue > div {
@@ -568,10 +567,6 @@
568
567
  background-color: rgba(0, 0, 0, 0.5) !important;
569
568
  }
570
569
 
571
- .cld-video-player.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-text-track-cue {
572
- bottom: 1.5rem !important;
573
- }
574
-
575
570
  .cld-video-player .cld-paced-text-tracks .vjs-text-track-cue b {
576
571
  color: var(--color-accent);
577
572
  }
@@ -715,7 +710,7 @@
715
710
  visibility: visible;
716
711
  }
717
712
  .cld-video-player.vjs-error .vjs-error-display {
718
- background: #90A0B3;
713
+ background: #90a0b3;
719
714
  }
720
715
  .cld-video-player.vjs-error .vjs-error-display:before {
721
716
  display: none;
@@ -743,18 +738,28 @@
743
738
  visibility: hidden;
744
739
  opacity: 0;
745
740
  }
746
- .cld-video-player .vjs-progress-control.vjs-control::before, .cld-video-player .vjs-control-bar .vjs-control.vjs-progress-control-events-blocker::before {
741
+ .cld-video-player::before {
747
742
  content: "";
748
743
  pointer-events: none;
749
744
  position: absolute;
750
- bottom: 0;
745
+ bottom: 3em;
751
746
  left: 0;
752
747
  right: 0;
753
748
  width: 100%;
754
749
  height: 5rem;
755
- background: linear-gradient(to bottom, transparent 0%, currentColor 100%);
750
+ background: linear-gradient(to bottom, transparent 0%, var(--color-base) 100%);
756
751
  opacity: 0.4;
757
- z-index: 0;
752
+ z-index: 1;
753
+ font-size: 120%;
754
+ display: none;
755
+ }
756
+ .cld-video-player.vjs-audio-only-mode::before, .cld-video-player.vjs-has-started::before {
757
+ display: flex;
758
+ transition: opacity 0.1s;
759
+ }
760
+ .cld-video-player.vjs-has-started.vjs-user-inactive.vjs-playing::before {
761
+ opacity: 0;
762
+ transition: opacity 1s;
758
763
  }
759
764
  .cld-video-player .vjs-control {
760
765
  width: 2.5em;
@@ -9384,7 +9384,7 @@ class CloudinaryAnalytics {
9384
9384
  this.cloudinaryAnalytics.startManualTracking(metadata, {
9385
9385
  ...(lodash_isPlainObject__WEBPACK_IMPORTED_MODULE_1___default()(this.analyticsOptions) ? this.analyticsOptions : {}),
9386
9386
  videoPlayerType: 'cloudinary video player',
9387
- videoPlayerVersion: "2.3.4-edge.5"
9387
+ videoPlayerVersion: "2.3.4-edge.7"
9388
9388
  });
9389
9389
  } else if (this.currentVideMetadata.cloudName !== metadata.cloudName || this.currentVideMetadata.publicId !== metadata.publicId) {
9390
9390
  this.cloudinaryAnalytics.stopManualTracking();
@@ -9757,7 +9757,7 @@ class CloudinaryContext {
9757
9757
  options.sourceTypes = options.sourceTypes || _this.sourceTypes();
9758
9758
  options.poster = options.poster || posterOptionsForCurrent();
9759
9759
  options.queryParams = Object.assign(options.queryParams || {}, options.usageReport ? {
9760
- _s: `vp-${"2.3.4-edge.5"}`
9760
+ _s: `vp-${"2.3.4-edge.7"}`
9761
9761
  } : {});
9762
9762
  if (options.sourceTypes.indexOf('audio') > -1) {
9763
9763
  builtSrc = new _models_audio_source_audio_source__WEBPACK_IMPORTED_MODULE_7__["default"](publicId, options);
@@ -11012,7 +11012,7 @@ const contextMenuContent = player => {
11012
11012
  const isFullscreen = player.isFullscreen();
11013
11013
  const aboutMenuItem = {
11014
11014
  class: 'player-version',
11015
- label: 'Cloudinary Player v' + "2.3.4-edge.5"
11015
+ label: 'Cloudinary Player v' + "2.3.4-edge.7"
11016
11016
  };
11017
11017
  if (!player.controls()) {
11018
11018
  return [aboutMenuItem];
@@ -13217,6 +13217,7 @@ const getAnalyticsFromPlayerOptions = playerOptions => filterDefaultsAndNulls({
13217
13217
  width: playerOptions.width,
13218
13218
  withCredentials: playerOptions.withCredentials,
13219
13219
  debug: playerOptions.debug,
13220
+ type: playerOptions.type,
13220
13221
  colors: playerOptions.colors && JSON.stringify(playerOptions.colors),
13221
13222
  controlBar: JSON.stringify(playerOptions.controlBar) !== JSON.stringify(config_defaults__WEBPACK_IMPORTED_MODULE_0__["default"].controlBar) && JSON.stringify(playerOptions.controlBar),
13222
13223
  ...getCloudinaryOptions(playerOptions.cloudinary),
@@ -13448,6 +13449,41 @@ function sliceAndUnsetProperties(obj) {
13448
13449
  }
13449
13450
 
13450
13451
 
13452
+ /***/ }),
13453
+
13454
+ /***/ "./utils/video-retry.js":
13455
+ /*!******************************!*\
13456
+ !*** ./utils/video-retry.js ***!
13457
+ \******************************/
13458
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13459
+
13460
+ "use strict";
13461
+ __webpack_require__.r(__webpack_exports__);
13462
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13463
+ /* harmony export */ checkIfVideoIsAvailable: () => (/* binding */ checkIfVideoIsAvailable),
13464
+ /* harmony export */ isVideoInReadyState: () => (/* binding */ isVideoInReadyState)
13465
+ /* harmony export */ });
13466
+ const checkIfVideoIsAvailable = function (videoUrl) {
13467
+ let videoType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
13468
+ return new Promise((resolve, reject) => {
13469
+ const tempVideo = document.createElement('video');
13470
+ tempVideo.setAttribute('crossorigin', 'anonymous');
13471
+ const targetEvent = videoType === 'live' ? 'onprogress' : 'canplay';
13472
+ tempVideo[targetEvent] = () => {
13473
+ tempVideo.onerror = null;
13474
+ tempVideo[targetEvent] = null;
13475
+ resolve();
13476
+ };
13477
+ tempVideo.onerror = () => reject();
13478
+ tempVideo.src = videoUrl;
13479
+ tempVideo.load();
13480
+ });
13481
+ };
13482
+ const isVideoInReadyState = readyState => {
13483
+ return readyState >= (/iPad|iPhone|iPod/.test(navigator.userAgent) ? 1 : 4);
13484
+ };
13485
+
13486
+
13451
13487
  /***/ }),
13452
13488
 
13453
13489
  /***/ "./validators/validators-functions.js":
@@ -13566,7 +13602,7 @@ __webpack_require__.r(__webpack_exports__);
13566
13602
  /* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);
13567
13603
 
13568
13604
  const CLOUDINARY_PARAMS = ['cloudinaryConfig', 'transformation', 'sourceTypes', 'sourceTransformation', 'posterOptions', 'autoShowRecommendations', 'fontFace', 'secure'];
13569
- const PLAYER_PARAMS = CLOUDINARY_PARAMS.concat(['_internalAnalyticsMetadata', 'debug', 'publicId', 'source', 'autoplayMode', 'playedEventPercents', 'playedEventTimes', 'analytics', 'cloudinaryAnalytics', 'allowUsageReport', 'fluid', 'ima', 'playlistWidget', 'hideContextMenu', 'colors', 'floatingWhenNotVisible', 'ads', 'showJumpControls', 'chaptersButton', 'pictureInPictureToggle', 'textTracks', 'qualitySelector', 'fetchErrorUsingGet', 'withCredentials', 'seekThumbnails', 'aiHighlightsGraph', 'chapters', 'queryParams']);
13605
+ const PLAYER_PARAMS = CLOUDINARY_PARAMS.concat(['_internalAnalyticsMetadata', 'debug', 'publicId', 'source', 'autoplayMode', 'playedEventPercents', 'playedEventTimes', 'analytics', 'cloudinaryAnalytics', 'allowUsageReport', 'fluid', 'ima', 'playlistWidget', 'hideContextMenu', 'colors', 'floatingWhenNotVisible', 'ads', 'showJumpControls', 'chaptersButton', 'pictureInPictureToggle', 'textTracks', 'qualitySelector', 'fetchErrorUsingGet', 'withCredentials', 'seekThumbnails', 'aiHighlightsGraph', 'chapters', 'queryParams', 'type']);
13570
13606
  const CLOUDINARY_CONFIG_PARAM = ['cloud_name', 'secure', 'private_cdn', 'secure_distribution', 'cdn_subdomain', 'secure_cdn_subdomain', 'cname', 'shorten', 'sign_url', 'api_secret', 'url_suffix', 'use_root_path', 'auth_token'];
13571
13607
  const DEFAULT_HLS_OPTIONS = {
13572
13608
  html5: {
@@ -13612,7 +13648,7 @@ __webpack_require__.r(__webpack_exports__);
13612
13648
  /* harmony export */ });
13613
13649
  /* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! video.js */ "../node_modules/video.js/dist/video.es-exposed.js");
13614
13650
  /* harmony import */ var video_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(video_js__WEBPACK_IMPORTED_MODULE_0__);
13615
- /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! uuid */ "../node_modules/uuid/dist/esm-browser/v4.js");
13651
+ /* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! uuid */ "../node_modules/uuid/dist/esm-browser/v4.js");
13616
13652
  /* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/isEmpty */ "../node_modules/lodash/isEmpty.js");
13617
13653
  /* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_1__);
13618
13654
  /* harmony import */ var lodash_get__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/get */ "../node_modules/lodash/get.js");
@@ -13638,7 +13674,9 @@ __webpack_require__.r(__webpack_exports__);
13638
13674
  /* harmony import */ var _utils_consts__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./utils/consts */ "./utils/consts.js");
13639
13675
  /* harmony import */ var _utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./utils/get-analytics-player-options */ "./utils/get-analytics-player-options.js");
13640
13676
  /* harmony import */ var _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./plugins/cloudinary/common */ "./plugins/cloudinary/common.js");
13641
- /* harmony import */ var _components_qualitySelector_qualitySelector_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./components/qualitySelector/qualitySelector.js */ "./components/qualitySelector/qualitySelector.js");
13677
+ /* harmony import */ var _utils_video_retry__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./utils/video-retry */ "./utils/video-retry.js");
13678
+ /* harmony import */ var _components_qualitySelector_qualitySelector_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./components/qualitySelector/qualitySelector.js */ "./components/qualitySelector/qualitySelector.js");
13679
+
13642
13680
 
13643
13681
 
13644
13682
 
@@ -13665,6 +13703,7 @@ __webpack_require__.r(__webpack_exports__);
13665
13703
  // #endif
13666
13704
 
13667
13705
  const INTERNAL_ANALYTICS_URL = 'https://analytics-api-s.cloudinary.com';
13706
+ const RETRY_DEFAULT_TIMEOUT = 5 * 1000;
13668
13707
 
13669
13708
  // Register all plugins
13670
13709
  Object.keys(_plugins__WEBPACK_IMPORTED_MODULE_8__["default"]).forEach(key => {
@@ -13684,7 +13723,6 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
13684
13723
  }
13685
13724
  constructor(elem, initOptions, ready) {
13686
13725
  super();
13687
- this.nbCalls = 0;
13688
13726
  this.videoElement = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_14__.getResolveVideoElement)(elem);
13689
13727
  this.options = (0,_video_player_utils__WEBPACK_IMPORTED_MODULE_14__.extractOptions)(this.videoElement, initOptions);
13690
13728
  this._videojsOptions = this.options.videojsOptions;
@@ -13725,7 +13763,7 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
13725
13763
  }
13726
13764
  getVPInstanceId() {
13727
13765
  if (!this.vpInstanceId) {
13728
- this.vpInstanceId = (0,uuid__WEBPACK_IMPORTED_MODULE_21__["default"])();
13766
+ this.vpInstanceId = (0,uuid__WEBPACK_IMPORTED_MODULE_22__["default"])();
13729
13767
  }
13730
13768
  return this.vpInstanceId;
13731
13769
  }
@@ -13740,7 +13778,7 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
13740
13778
  const analyticsData = (0,_utils_get_analytics_player_options__WEBPACK_IMPORTED_MODULE_18__.getAnalyticsFromPlayerOptions)(options);
13741
13779
  const analyticsParams = new URLSearchParams(analyticsData).toString();
13742
13780
  const baseParams = new URLSearchParams({
13743
- vpVersion: "2.3.4-edge.5",
13781
+ vpVersion: "2.3.4-edge.7",
13744
13782
  vpInstanceId: this.getVPInstanceId(),
13745
13783
  // #if (process.env.WEBPACK_BUILD_LIGHT)
13746
13784
  // vpLightBuild: true,
@@ -13753,8 +13791,9 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
13753
13791
  console.warn(err);
13754
13792
  }
13755
13793
  }
13756
- _clearTimeOut = () => {
13757
- this.videojs.clearTimeout(this.reTryId);
13794
+ _resetReTryVideoState = () => {
13795
+ this.reTryVideoStateRetriesCount = 0;
13796
+ this.videojs.clearTimeout(this.reTryVideoStateTimeoutId);
13758
13797
  };
13759
13798
  _setVideoJsListeners(ready) {
13760
13799
  this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_17__.PLAYER_EVENT.ERROR, () => {
@@ -13764,27 +13803,35 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
13764
13803
 
13765
13804
  /*
13766
13805
  error codes :
13767
- 3 - media playback was aborted due to a corruption problem
13768
- 4 - media error, media source not supported
13806
+ 3 - media playback was aborted due to a corruption problem
13807
+ 4 - media error, media source not supported
13769
13808
  */
13770
13809
  const isCorrupted = error.code === 3 && (video_js__WEBPACK_IMPORTED_MODULE_0___default().browser).IS_SAFARI;
13771
13810
  if ([isCorrupted, error.code === 4].includes(true) && [_utils_consts__WEBPACK_IMPORTED_MODULE_17__.SOURCE_TYPE.AUDIO, _utils_consts__WEBPACK_IMPORTED_MODULE_17__.SOURCE_TYPE.VIDEO].includes(type)) {
13772
- this.videojs.error(null);
13773
- _utils__WEBPACK_IMPORTED_MODULE_9__["default"].handleCldError(this, this.playerOptions);
13811
+ if (this.isLiveStream) {
13812
+ this.videojs.error({
13813
+ code: _plugins_cloudinary_common__WEBPACK_IMPORTED_MODULE_19__.ERROR_CODE.CUSTOM,
13814
+ message: 'Live Stream not started'
13815
+ });
13816
+ this.reloadVideoUntilAvailable();
13817
+ } else {
13818
+ this.videojs.error(null);
13819
+ _utils__WEBPACK_IMPORTED_MODULE_9__["default"].handleCldError(this, this.playerOptions);
13820
+ }
13774
13821
  } else {
13775
- this._clearTimeOut();
13822
+ this._resetReTryVideoState();
13776
13823
  }
13777
13824
  }
13778
13825
  });
13779
13826
  this.videojs.tech_.on(_utils_consts__WEBPACK_IMPORTED_MODULE_17__.PLAYER_EVENT.RETRY_PLAYLIST, () => {
13780
13827
  const mediaRequestsErrored = lodash_get__WEBPACK_IMPORTED_MODULE_2___default()(this.videojs, 'hls.stats.mediaRequestsErrored', 0);
13781
13828
  if (mediaRequestsErrored > 0) {
13782
- this._clearTimeOut();
13829
+ this._resetReTryVideoState();
13783
13830
  _utils__WEBPACK_IMPORTED_MODULE_9__["default"].handleCldError(this, this.playerOptions);
13784
13831
  }
13785
13832
  });
13786
- this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_17__.PLAYER_EVENT.PLAY, this._clearTimeOut);
13787
- this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_17__.PLAYER_EVENT.CAN_PLAY_THROUGH, this._clearTimeOut);
13833
+ this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_17__.PLAYER_EVENT.PLAY, this._resetReTryVideoState);
13834
+ this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_17__.PLAYER_EVENT.CAN_PLAY_THROUGH, this._resetReTryVideoState);
13788
13835
  this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_17__.PLAYER_EVENT.CLD_SOURCE_CHANGED, this._onSourceChange.bind(this));
13789
13836
  this.videojs.ready(() => {
13790
13837
  this._onReady();
@@ -13950,12 +13997,12 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
13950
13997
  default: 'auto'
13951
13998
  });
13952
13999
  this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_17__.PLAYER_EVENT.LOADED_METADATA, () => {
13953
- _components_qualitySelector_qualitySelector_js__WEBPACK_IMPORTED_MODULE_20__["default"].init(this.videojs);
14000
+ _components_qualitySelector_qualitySelector_js__WEBPACK_IMPORTED_MODULE_21__["default"].init(this.videojs);
13954
14001
  });
13955
14002
 
13956
14003
  // Show only if more than one option available
13957
14004
  this.videojs.on(_utils_consts__WEBPACK_IMPORTED_MODULE_17__.PLAYER_EVENT.LOADED_DATA, () => {
13958
- _components_qualitySelector_qualitySelector_js__WEBPACK_IMPORTED_MODULE_20__["default"].setVisibility(this.videojs);
14005
+ _components_qualitySelector_qualitySelector_js__WEBPACK_IMPORTED_MODULE_21__["default"].setVisibility(this.videojs);
13959
14006
  });
13960
14007
  }
13961
14008
  }
@@ -14016,24 +14063,43 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
14016
14063
  this.videojs.cloudinaryAnalytics(options);
14017
14064
  }
14018
14065
  }
14019
- reTryVideo(maxNumberOfCalls, timeout) {
14020
- if (!this.isVideoReady()) {
14021
- if (this.nbCalls < maxNumberOfCalls) {
14022
- this.nbCalls++;
14023
- this.reTryId = this.videojs.setTimeout(() => this.reTryVideo(maxNumberOfCalls, timeout), timeout);
14066
+ reTryVideoStateUntilAvailable() {
14067
+ let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;
14068
+ let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;
14069
+ if (typeof this.reTryVideoStateRetriesCount !== 'number') {
14070
+ this.reTryVideoStateRetriesCount = 0;
14071
+ }
14072
+ if (!(0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_20__.isVideoInReadyState)(this.videojs.readyState())) {
14073
+ if (this.reTryVideoStateRetriesCount < maxNumberOfCalls) {
14074
+ this.reTryVideoStateRetriesCount++;
14075
+ this.reTryVideoStateTimeoutId = this.videojs.setTimeout(() => this.reTryVideoStateUntilAvailable(maxNumberOfCalls, timeout), timeout);
14024
14076
  } else {
14025
14077
  let e = new Error('Video is not ready please try later');
14026
14078
  this.videojs.trigger('error', e);
14027
14079
  }
14080
+ } else {
14081
+ this.reTryVideoStateRetriesCount = 0;
14028
14082
  }
14029
14083
  }
14030
- isVideoReady() {
14031
- const s = this.videojs.readyState();
14032
- if (s >= (/iPad|iPhone|iPod/.test(navigator.userAgent) ? 1 : 4)) {
14033
- this.nbCalls = 0;
14034
- return true;
14084
+ _resetReloadVideo = () => {
14085
+ this.reloadVideoRetriesCount = 0;
14086
+ this.videojs.clearTimeout(this.reloadVideoTimeoutId);
14087
+ };
14088
+ reloadVideoUntilAvailable() {
14089
+ let maxNumberOfCalls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.POSITIVE_INFINITY;
14090
+ let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RETRY_DEFAULT_TIMEOUT;
14091
+ if (typeof this.reloadVideoRetriesCount !== 'number') {
14092
+ this.reloadVideoRetriesCount = 0;
14093
+ }
14094
+ if (this.reloadVideoRetriesCount < maxNumberOfCalls) {
14095
+ this.reloadVideoRetriesCount++;
14096
+ this.reloadVideoTimeoutId = this.videojs.setTimeout(() => {
14097
+ const videoUrl = this.currentSourceUrl();
14098
+ (0,_utils_video_retry__WEBPACK_IMPORTED_MODULE_20__.checkIfVideoIsAvailable)(videoUrl, this.isLiveStream ? 'live' : 'default').then(() => this.source(videoUrl)).catch(() => this.reloadVideoUntilAvailable(maxNumberOfCalls, timeout));
14099
+ }, timeout);
14100
+ } else {
14101
+ this.videojs.trigger('error', new Error('Sorry, we could not load your video'));
14035
14102
  }
14036
- return false;
14037
14103
  }
14038
14104
  _initAutoplay() {
14039
14105
  const autoplayMode = this.playerOptions.autoplayMode;
@@ -14069,6 +14135,7 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
14069
14135
  }
14070
14136
  _onSourceChange(e, _ref5) {
14071
14137
  let {
14138
+ source,
14072
14139
  sourceOptions
14073
14140
  } = _ref5;
14074
14141
  this._sendInternalAnalytics({
@@ -14079,6 +14146,7 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
14079
14146
  // #if (!process.env.WEBPACK_BUILD_LIGHT)
14080
14147
  this._initQualitySelector();
14081
14148
  // #endif
14149
+ this.isLiveStream = source.resourceConfig().type === 'live';
14082
14150
  }
14083
14151
  _setExtendedEvents() {
14084
14152
  const events = [];
@@ -14148,11 +14216,11 @@ class VideoPlayer extends _utils__WEBPACK_IMPORTED_MODULE_9__["default"].mixin(_
14148
14216
  if (this.playerOptions.withCredentials) {
14149
14217
  options.withCredentials = true;
14150
14218
  }
14151
- clearTimeout(this.reTryId);
14152
- this.nbCalls = 0;
14219
+ this._resetReloadVideo();
14220
+ this._resetReTryVideoState();
14153
14221
  const maxTries = this.videojs.options_.maxTries || 3;
14154
14222
  const videoReadyTimeout = this.videojs.options_.videoTimeout || 55000;
14155
- this.reTryVideo(maxTries, videoReadyTimeout);
14223
+ this.reTryVideoStateUntilAvailable(maxTries, videoReadyTimeout);
14156
14224
  return this.videojs.cloudinary.source(publicId, options);
14157
14225
  }
14158
14226
  posterOptions(options) {
@@ -545,21 +545,20 @@
545
545
  }
546
546
  }
547
547
  .cld-video-player .vjs-text-track-display {
548
- margin: auto;
549
- bottom: 0 !important;
550
- }
551
-
552
- .cld-video-player .vjs-text-track-display > div {
553
- margin: 3% !important;
548
+ bottom: 5em;
549
+ z-index: 2;
554
550
  }
555
551
 
556
552
  .cld-video-player .vjs-text-track-display.cld-paced-text-tracks b {
557
553
  color: var(--color-accent);
558
554
  }
559
555
 
556
+ .cld-video-player.vjs-controls-disabled .vjs-text-track-display, .cld-video-player.vjs-user-inactive.vjs-playing .vjs-text-track-display {
557
+ bottom: 1em;
558
+ }
559
+
560
560
  .cld-video-player .vjs-text-track-cue {
561
- top: auto !important;
562
- bottom: 3.4rem !important;
561
+ max-width: 100%;
563
562
  }
564
563
 
565
564
  .cld-video-player .vjs-text-track-cue > div {
@@ -568,10 +567,6 @@
568
567
  background-color: rgba(0, 0, 0, 0.5) !important;
569
568
  }
570
569
 
571
- .cld-video-player.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-text-track-cue {
572
- bottom: 1.5rem !important;
573
- }
574
-
575
570
  .cld-video-player .cld-paced-text-tracks .vjs-text-track-cue b {
576
571
  color: var(--color-accent);
577
572
  }
@@ -715,7 +710,7 @@
715
710
  visibility: visible;
716
711
  }
717
712
  .cld-video-player.vjs-error .vjs-error-display {
718
- background: #90A0B3;
713
+ background: #90a0b3;
719
714
  }
720
715
  .cld-video-player.vjs-error .vjs-error-display:before {
721
716
  display: none;
@@ -743,18 +738,28 @@
743
738
  visibility: hidden;
744
739
  opacity: 0;
745
740
  }
746
- .cld-video-player .vjs-progress-control.vjs-control::before, .cld-video-player .vjs-control-bar .vjs-control.vjs-progress-control-events-blocker::before {
741
+ .cld-video-player::before {
747
742
  content: "";
748
743
  pointer-events: none;
749
744
  position: absolute;
750
- bottom: 0;
745
+ bottom: 3em;
751
746
  left: 0;
752
747
  right: 0;
753
748
  width: 100%;
754
749
  height: 5rem;
755
- background: linear-gradient(to bottom, transparent 0%, currentColor 100%);
750
+ background: linear-gradient(to bottom, transparent 0%, var(--color-base) 100%);
756
751
  opacity: 0.4;
757
- z-index: 0;
752
+ z-index: 1;
753
+ font-size: 120%;
754
+ display: none;
755
+ }
756
+ .cld-video-player.vjs-audio-only-mode::before, .cld-video-player.vjs-has-started::before {
757
+ display: flex;
758
+ transition: opacity 0.1s;
759
+ }
760
+ .cld-video-player.vjs-has-started.vjs-user-inactive.vjs-playing::before {
761
+ opacity: 0;
762
+ transition: opacity 1s;
758
763
  }
759
764
  .cld-video-player .vjs-control {
760
765
  width: 2.5em;