@opentok/client 2.30.0-alpha.4 → 2.30.0-alpha.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.
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license OpenTok.js 2.30.0 7abb6c4
2
+ * @license OpenTok.js 2.30.0 8d75376
3
3
  *
4
4
  * Copyright (c) 2010-2025 TokBox, Inc.
5
5
  * Subject to the applicable Software Development Kit (SDK) License Agreement:
6
6
  * https://www.vonage.com/legal/communications-apis/terms-of-use/
7
7
  *
8
- * Date: Tue, 15 Apr 2025 00:39:39 GMT
8
+ * Date: Tue, 15 Apr 2025 19:28:00 GMT
9
9
  */
10
10
 
11
11
  (function webpackUniversalModuleDefinition(root, factory) {
@@ -8672,7 +8672,7 @@ const logging = (0, _log.default)('StaticConfig');
8672
8672
  */
8673
8673
 
8674
8674
  /** @type builtInConfig */
8675
- const builtInConfig = (0, _cloneDeep.default)({"version":"v2.30.0","buildHash":"7abb6c4","minimumVersion":{"firefox":52,"chrome":49},"debug":false,"websiteURL":"http://www.tokbox.com","configURL":"https://config.opentok.com","ipWhitelistConfigURL":"","cdnURL":"","loggingURL":"https://hlg.tokbox.com/prod","apiURL":"https://anvil.opentok.com"});
8675
+ const builtInConfig = (0, _cloneDeep.default)({"version":"v2.30.0","buildHash":"8d75376","minimumVersion":{"firefox":52,"chrome":49},"debug":false,"websiteURL":"http://www.tokbox.com","configURL":"https://config.opentok.com","ipWhitelistConfigURL":"","cdnURL":"","loggingURL":"https://hlg.tokbox.com/prod","apiURL":"https://anvil.opentok.com"});
8676
8676
  const whitelistAllowedRuntimeProperties = (0, _pick.default)(['apiURL', 'assetURL', 'cdnURL', 'sessionInfoOverrides', 'loggingURL']);
8677
8677
  const liveConfigMap = {
8678
8678
  apiUrl: 'apiURL',
@@ -17164,6 +17164,10 @@ function WidgetViewFactory(_temp) {
17164
17164
  OTHelpers.css(this._posterContainer, 'backgroundImage', `url(${src})`);
17165
17165
  return this.poster();
17166
17166
  };
17167
+ _proto.prepareForStreamTransition = function prepareForStreamTransition() {
17168
+ var _this$_videoElementFa;
17169
+ (_this$_videoElementFa = this._videoElementFacade) == null ? void 0 : _this$_videoElementFa.prepareForStreamTransition();
17170
+ };
17167
17171
  _proto.loading = function loading(isLoading) {
17168
17172
  if (isLoading === undefined) {
17169
17173
  return this._loading;
@@ -25298,7 +25302,11 @@ function NativeVideoElementWrapperFactory(deps) {
25298
25302
  _proto.aspectRatio = function aspectRatio() {
25299
25303
  return this.videoWidth() / this.videoHeight();
25300
25304
  };
25301
- _proto.imgData = function imgData() {
25305
+ _proto.prepareForStreamTransition = function prepareForStreamTransition() {
25306
+ const streamImage = this._getStreamImage();
25307
+ this._domElement.poster = streamImage;
25308
+ };
25309
+ _proto._getStreamImage = function _getStreamImage() {
25302
25310
  const canvas = OTHelpers.createElement('canvas', {
25303
25311
  width: this.videoWidth(),
25304
25312
  height: this.videoHeight(),
@@ -25321,7 +25329,10 @@ function NativeVideoElementWrapperFactory(deps) {
25321
25329
  this.logging.warn('Cannot get image data yet');
25322
25330
  return null;
25323
25331
  }
25324
- return imgData.replace('data:image/png;base64,', '').trim();
25332
+ return imgData;
25333
+ };
25334
+ _proto.imgData = function imgData() {
25335
+ return this._getStreamImage().replace('data:image/png;base64,', '').trim();
25325
25336
  }
25326
25337
  // Append the Video DOM element to a parent node
25327
25338
  ;
@@ -37003,29 +37014,31 @@ function SubscriberFactory(_ref2) {
37003
37014
  hasVideo: (_stream2 = _stream) == null ? void 0 : _stream2.hasVideo
37004
37015
  }; // We want to catch any error in the prebuffering when transition to P2P.
37005
37016
  // Otherwise, we ignore it.
37006
- throwIfBufferFails = _isAdaptiveEnabled && _activeSourceStreamId === 'P2P';
37007
- _context3.prev = 5;
37008
- _context3.next = 8;
37017
+ throwIfBufferFails = _isAdaptiveEnabled && _activeSourceStreamId === 'P2P'; // To minimize the blip effect during a stream transition, we take a snapshot of the video stream (if available)
37018
+ // and display it instead of a blank screen.
37019
+ _widgetView.prepareForStreamTransition();
37020
+ _context3.prev = 6;
37021
+ _context3.next = 9;
37009
37022
  return _widgetView.bindVideo(webRTCStream, videoContainerOptions, throwIfBufferFails);
37010
- case 8:
37011
- _context3.next = 16;
37023
+ case 9:
37024
+ _context3.next = 17;
37012
37025
  break;
37013
- case 10:
37014
- _context3.prev = 10;
37015
- _context3.t0 = _context3["catch"](5);
37026
+ case 11:
37027
+ _context3.prev = 11;
37028
+ _context3.t0 = _context3["catch"](6);
37016
37029
  if (!(_context3.t0 instanceof _cancel.CancellationError || _state.isDestroyed())) {
37017
- _context3.next = 14;
37030
+ _context3.next = 15;
37018
37031
  break;
37019
37032
  }
37020
37033
  return _context3.abrupt("return");
37021
- case 14:
37034
+ case 15:
37022
37035
  onVideoError(_context3.t0);
37023
37036
  throw _context3.t0;
37024
- case 16:
37037
+ case 17:
37025
37038
  case "end":
37026
37039
  return _context3.stop();
37027
37040
  }
37028
- }, _callee3, null, [[5, 10]]);
37041
+ }, _callee3, null, [[6, 11]]);
37029
37042
  }));
37030
37043
  return function bindWebRTCStream(_x3) {
37031
37044
  return _ref6.apply(this, arguments);