@bigbinary/neeto-media-recorder 2.7.3 → 2.7.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.
package/core.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios';
2
2
  import { isNotEmpty, existsBy, isNot, noop } from '@bigbinary/neeto-cist';
3
- import { MIME_TYPE as MIME_TYPE$1, UPLOAD_EVENT, UPLOAD_STATUS, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, RECORDING_LIMIT_REACHED_WARNING_SOUND, RECORDING_TIME_LIMIT_FREE_PLAN, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, ONE_SECOND, HALF_A_SECOND_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS, TWO_HUNDRED_MILLISECONDS, ONE_MINUTE_IN_MILLISECONDS, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, IS_EXTENSION } from '@bigbinary/neeto-media-recorder/constants';
3
+ import { MIME_TYPE as MIME_TYPE$1, UPLOAD_EVENT, UPLOAD_STATUS, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, RECORDING_LIMIT_REACHED_WARNING_SOUND, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, RECORDING_TIME_LIMIT_FREE_PLAN, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, HALF_A_SECOND_IN_MILLISECONDS, ONE_SECOND, ONE_SECOND_IN_MILLISECONDS, TWO_HUNDRED_MILLISECONDS, ONE_MINUTE_IN_MILLISECONDS, IS_EXTENSION } from '@bigbinary/neeto-media-recorder/constants';
4
4
  import { useMultipartS3UploadStatus as useMultipartS3UploadStatus$1, getMultipartS3Uploader as getMultipartS3Uploader$1 } from '@bigbinary/neeto-media-recorder/core';
5
5
  import { isNotNil, min, isNil, identity, isEmpty, pick, equals, not } from 'ramda';
6
6
  import platform from 'platform';
@@ -1040,6 +1040,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1040
1040
  }
1041
1041
  });
1042
1042
  _defineProperty(this, "completeUploadNotifyServer", function (parts, sessionLogs) {
1043
+ var _classPrivateFieldGet2;
1043
1044
  return completeUploadApi.create({
1044
1045
  recordingId: _classPrivateFieldGet(_this, _recordingId),
1045
1046
  payload: {
@@ -1049,7 +1050,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1049
1050
  logs: sessionLogs
1050
1051
  },
1051
1052
  config: {
1052
- signal: _classPrivateFieldGet(_this, _abortController).signal
1053
+ signal: (_classPrivateFieldGet2 = _classPrivateFieldGet(_this, _abortController)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.signal
1053
1054
  }
1054
1055
  });
1055
1056
  });
@@ -1233,22 +1234,22 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1233
1234
  _classPrivateFieldSet(_this, _status2, "");
1234
1235
  });
1235
1236
  _defineProperty(this, "addCallback", function (event, callback) {
1236
- var _classPrivateFieldGet2;
1237
- var existingCallbacks = (_classPrivateFieldGet2 = _classPrivateFieldGet(_this, _callbacks$1)[event]) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : [];
1237
+ var _classPrivateFieldGet3;
1238
+ var existingCallbacks = (_classPrivateFieldGet3 = _classPrivateFieldGet(_this, _callbacks$1)[event]) !== null && _classPrivateFieldGet3 !== void 0 ? _classPrivateFieldGet3 : [];
1238
1239
  _classPrivateFieldSet(_this, _callbacks$1, _objectSpread$2(_objectSpread$2({}, _classPrivateFieldGet(_this, _callbacks$1)), {}, _defineProperty({}, event, [].concat(_toConsumableArray(existingCallbacks), [callback]))));
1239
1240
  });
1240
1241
  _defineProperty(this, "removeCallback", function (event, callback) {
1241
- var _classPrivateFieldGet3;
1242
- var registeredCallbacks = (_classPrivateFieldGet3 = _classPrivateFieldGet(_this, _callbacks$1)[event]) !== null && _classPrivateFieldGet3 !== void 0 ? _classPrivateFieldGet3 : [];
1242
+ var _classPrivateFieldGet4;
1243
+ var registeredCallbacks = (_classPrivateFieldGet4 = _classPrivateFieldGet(_this, _callbacks$1)[event]) !== null && _classPrivateFieldGet4 !== void 0 ? _classPrivateFieldGet4 : [];
1243
1244
  var updatedCallbacks = registeredCallbacks.filter(isNot(callback));
1244
1245
  _classPrivateFieldSet(_this, _callbacks$1, _objectSpread$2(_objectSpread$2({}, _classPrivateFieldGet(_this, _callbacks$1)), {}, _defineProperty({}, event, updatedCallbacks)));
1245
1246
  });
1246
1247
  _classPrivateFieldInitSpec$1(this, _fireCallbacks$1, {
1247
1248
  writable: true,
1248
1249
  value: function value(event) {
1249
- var _classPrivateFieldGet4;
1250
+ var _classPrivateFieldGet5;
1250
1251
  var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
1251
- (_classPrivateFieldGet4 = _classPrivateFieldGet(_this, _callbacks$1)[event]) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.forEach(function (callback) {
1252
+ (_classPrivateFieldGet5 = _classPrivateFieldGet(_this, _callbacks$1)[event]) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.forEach(function (callback) {
1252
1253
  callback.apply(void 0, _toConsumableArray(args));
1253
1254
  });
1254
1255
  }
@@ -1267,40 +1268,28 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1267
1268
  }
1268
1269
  }
1269
1270
  });
1270
- _defineProperty(this, "generatePreSignedUrl", /*#__PURE__*/function () {
1271
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(partNumber) {
1272
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1273
- while (1) switch (_context3.prev = _context3.next) {
1274
- case 0:
1275
- return _context3.abrupt("return", partPresignedUrlApi.create({
1276
- recordingId: _classPrivateFieldGet(_this, _recordingId),
1277
- payload: {
1278
- partNumber: partNumber,
1279
- uploadId: _classPrivateFieldGet(_this, _uploadId),
1280
- isMp4: _classPrivateFieldGet(_this, _mimeType$1).includes(MIME_TYPE.mp4)
1281
- },
1282
- config: {
1283
- signal: _classPrivateFieldGet(_this, _abortController).signal
1284
- }
1285
- }));
1286
- case 1:
1287
- case "end":
1288
- return _context3.stop();
1289
- }
1290
- }, _callee3);
1291
- }));
1292
- return function (_x2) {
1293
- return _ref3.apply(this, arguments);
1294
- };
1295
- }());
1271
+ _defineProperty(this, "generatePreSignedUrl", function (partNumber) {
1272
+ var _classPrivateFieldGet6;
1273
+ return partPresignedUrlApi.create({
1274
+ recordingId: _classPrivateFieldGet(_this, _recordingId),
1275
+ payload: {
1276
+ partNumber: partNumber,
1277
+ uploadId: _classPrivateFieldGet(_this, _uploadId),
1278
+ isMp4: _classPrivateFieldGet(_this, _mimeType$1).includes(MIME_TYPE.mp4)
1279
+ },
1280
+ config: {
1281
+ signal: (_classPrivateFieldGet6 = _classPrivateFieldGet(_this, _abortController)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.signal
1282
+ }
1283
+ });
1284
+ });
1296
1285
  _classPrivateFieldInitSpec$1(this, _uploadChunkToS, {
1297
1286
  writable: true,
1298
1287
  value: function () {
1299
- var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(chunks) {
1288
+ var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(chunks) {
1300
1289
  var _this$partNumber;
1301
- var partNumber, _yield$_this$generate, presignedUrl, s3PartUploadPromise;
1302
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
1303
- while (1) switch (_context4.prev = _context4.next) {
1290
+ var partNumber, _classPrivateFieldGet7, _yield$_this$generate, presignedUrl, s3PartUploadPromise;
1291
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1292
+ while (1) switch (_context3.prev = _context3.next) {
1304
1293
  case 0:
1305
1294
  _classPrivateFieldGet(_this, _logger$1).info("Part ready to be uploaded: ", _classPrivateFieldGet(_this, _partNumber));
1306
1295
  partNumber = _classPrivateFieldGet(_this, _partNumber);
@@ -1311,11 +1300,11 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1311
1300
  type: _classPrivateFieldGet(_this, _mimeType$1)
1312
1301
  }).size
1313
1302
  };
1314
- _context4.prev = 4;
1315
- _context4.next = 7;
1303
+ _context3.prev = 4;
1304
+ _context3.next = 7;
1316
1305
  return _this.generatePreSignedUrl(partNumber);
1317
1306
  case 7:
1318
- _yield$_this$generate = _context4.sent;
1307
+ _yield$_this$generate = _context3.sent;
1319
1308
  presignedUrl = _yield$_this$generate.presignedUrl;
1320
1309
  _classPrivateFieldGet(_this, _logger$1).info("Presigned url created for partNumber:", partNumber);
1321
1310
  s3PartUploadPromise = s3Api.presignedUpload({
@@ -1328,7 +1317,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1328
1317
  "Content-Type": _classPrivateFieldGet(_this, _mimeType$1)
1329
1318
  },
1330
1319
  includeMetadataInResponse: true,
1331
- signal: _classPrivateFieldGet(_this, _abortController).signal,
1320
+ signal: (_classPrivateFieldGet7 = _classPrivateFieldGet(_this, _abortController)) === null || _classPrivateFieldGet7 === void 0 ? void 0 : _classPrivateFieldGet7.signal,
1332
1321
  onUploadProgress: function onUploadProgress(e) {
1333
1322
  _classPrivateFieldGet(_this, _uploadProgress)[partNumber] = {
1334
1323
  uploaded: e.loaded,
@@ -1341,23 +1330,25 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1341
1330
  }
1342
1331
  }
1343
1332
  }
1344
- })["catch"](function (error) {
1333
+ })
1334
+ // eslint-disable-next-line promise/prefer-await-to-then
1335
+ ["catch"](function (error) {
1345
1336
  _classPrivateFieldGet(_this, _handleChunkUploadError).call(_this, error, partNumber);
1346
1337
  });
1347
1338
  _classPrivateFieldGet(_this, _s3PartUploadPromises).push(s3PartUploadPromise);
1348
- _context4.next = 17;
1339
+ _context3.next = 17;
1349
1340
  break;
1350
1341
  case 14:
1351
- _context4.prev = 14;
1352
- _context4.t0 = _context4["catch"](4);
1353
- _classPrivateFieldGet(_this, _handleChunkUploadError).call(_this, _context4.t0, partNumber);
1342
+ _context3.prev = 14;
1343
+ _context3.t0 = _context3["catch"](4);
1344
+ _classPrivateFieldGet(_this, _handleChunkUploadError).call(_this, _context3.t0, partNumber);
1354
1345
  case 17:
1355
1346
  case "end":
1356
- return _context4.stop();
1347
+ return _context3.stop();
1357
1348
  }
1358
- }, _callee4, null, [[4, 14]]);
1349
+ }, _callee3, null, [[4, 14]]);
1359
1350
  }));
1360
- function value(_x3) {
1351
+ function value(_x2) {
1361
1352
  return _value.apply(this, arguments);
1362
1353
  }
1363
1354
  return value;
@@ -1388,6 +1379,8 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1388
1379
  get: function get() {
1389
1380
  return isNotEmpty(_classPrivateFieldGet(this, _unUploadedChunks)) || isNotEmpty(_classPrivateFieldGet(this, _pendingS3ChunkUploads)) || isNotEmpty(_classPrivateFieldGet(this, _s3PartUploadPromises));
1390
1381
  }
1382
+
1383
+ // eslint-disable-next-line default-param-last
1391
1384
  }]);
1392
1385
  return MultipartS3Uploader;
1393
1386
  }();
@@ -1400,9 +1393,9 @@ function _get_isRecordingNotSet() {
1400
1393
  }
1401
1394
  var multipartS3Uploader = new MultipartS3Uploader();
1402
1395
  var getMultipartS3Uploader = function getMultipartS3Uploader() {
1403
- var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1404
- _ref4$initialize = _ref4.initialize,
1405
- initialize = _ref4$initialize === void 0 ? false : _ref4$initialize;
1396
+ var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1397
+ _ref3$initialize = _ref3.initialize,
1398
+ initialize = _ref3$initialize === void 0 ? false : _ref3$initialize;
1406
1399
  if (!multipartS3Uploader || initialize) {
1407
1400
  multipartS3Uploader = new MultipartS3Uploader();
1408
1401
  useMultipartS3UploadStatus$1.triggerStatusChange();
@@ -1498,6 +1491,7 @@ var _micAudioStream = /*#__PURE__*/new WeakMap();
1498
1491
  var _timeLimit = /*#__PURE__*/new WeakMap();
1499
1492
  var _startRecordingTimeoutID = /*#__PURE__*/new WeakMap();
1500
1493
  var _enableNoiseCancellation = /*#__PURE__*/new WeakMap();
1494
+ var _showCountdown = /*#__PURE__*/new WeakMap();
1501
1495
  var _mimeType = /*#__PURE__*/new WeakMap();
1502
1496
  var _stopAllStreams = /*#__PURE__*/new WeakMap();
1503
1497
  var _checkCompatibility = /*#__PURE__*/new WeakMap();
@@ -1506,7 +1500,8 @@ var _fireCallbacks = /*#__PURE__*/new WeakMap();
1506
1500
  var _onRecordingStart = /*#__PURE__*/new WeakMap();
1507
1501
  var _onRecordingActive = /*#__PURE__*/new WeakMap();
1508
1502
  var _onRecordingStop = /*#__PURE__*/new WeakMap();
1509
- var _countdownAndStartRecording = /*#__PURE__*/new WeakMap();
1503
+ var _startMediaRecorder = /*#__PURE__*/new WeakMap();
1504
+ var _startCountdown = /*#__PURE__*/new WeakMap();
1510
1505
  var _startTimer = /*#__PURE__*/new WeakMap();
1511
1506
  var _stopTimer = /*#__PURE__*/new WeakMap();
1512
1507
  var _checkIfTimeLimitReached = /*#__PURE__*/new WeakMap();
@@ -1572,7 +1567,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1572
1567
  });
1573
1568
  _classPrivateFieldInitSpec(this, _stopRecordingDueToLimitReachedAudio, {
1574
1569
  writable: true,
1575
- value: void 0
1570
+ value: new Audio(STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND)
1576
1571
  });
1577
1572
  _classPrivateFieldInitSpec(this, _stream, {
1578
1573
  writable: true,
@@ -1598,6 +1593,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
1598
1593
  writable: true,
1599
1594
  value: false
1600
1595
  });
1596
+ _classPrivateFieldInitSpec(this, _showCountdown, {
1597
+ writable: true,
1598
+ value: true
1599
+ });
1601
1600
  _classPrivateFieldInitSpec(this, _mimeType, {
1602
1601
  writable: true,
1603
1602
  value: getSupportedMimeType()
@@ -1611,6 +1610,9 @@ var ScreenRecorder = /*#__PURE__*/function () {
1611
1610
  _defineProperty(this, "setAudioConfiguration", function (audio) {
1612
1611
  return _classPrivateFieldSet(_this, _audio, audio);
1613
1612
  });
1613
+ _defineProperty(this, "setShowCountdown", function (showCountdown) {
1614
+ return _classPrivateFieldSet(_this, _showCountdown, showCountdown);
1615
+ });
1614
1616
  _defineProperty(this, "setTimeLimit", function () {
1615
1617
  var timeLimit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : RECORDING_TIME_LIMIT_FREE_PLAN;
1616
1618
  return _classPrivateFieldSet(_this, _timeLimit, timeLimit);
@@ -1674,7 +1676,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
1674
1676
  error: SCREEN_RECORDER_ERROR.NoRecorder
1675
1677
  });
1676
1678
  };
1677
- _classPrivateFieldGet(_this, _countdownAndStartRecording).call(_this);
1679
+ if (_classPrivateFieldGet(_this, _showCountdown)) {
1680
+ _classPrivateFieldGet(_this, _startCountdown).call(_this);
1681
+ } else {
1682
+ _classPrivateFieldGet(_this, _startMediaRecorder).call(_this);
1683
+ }
1678
1684
  case 19:
1679
1685
  case "end":
1680
1686
  return _context.stop();
@@ -1832,7 +1838,9 @@ var ScreenRecorder = /*#__PURE__*/function () {
1832
1838
  break;
1833
1839
  }
1834
1840
  _context2.prev = 13;
1835
- workletUrl = IS_EXTENSION ? chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
1841
+ workletUrl = IS_EXTENSION ?
1842
+ // eslint-disable-next-line no-undef
1843
+ chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
1836
1844
  audioContext = new AudioContext();
1837
1845
  _context2.next = 18;
1838
1846
  return audioContext.audioWorklet.addModule(workletUrl);
@@ -1848,6 +1856,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1848
1856
  case 26:
1849
1857
  _context2.prev = 26;
1850
1858
  _context2.t4 = _context2["catch"](13);
1859
+ // eslint-disable-next-line no-console
1851
1860
  console.error("Failed to load audio worklet:", _context2.t4);
1852
1861
  case 29:
1853
1862
  if (!_classPrivateFieldGet(_this, _videoStream)) {
@@ -1968,7 +1977,59 @@ var ScreenRecorder = /*#__PURE__*/function () {
1968
1977
  }
1969
1978
  }
1970
1979
  });
1971
- _classPrivateFieldInitSpec(this, _countdownAndStartRecording, {
1980
+ _classPrivateFieldInitSpec(this, _startMediaRecorder, {
1981
+ writable: true,
1982
+ value: function value() {
1983
+ _classPrivateFieldSet(_this, _startRecordingTimeoutID, setTimeout(function () {
1984
+ try {
1985
+ _classPrivateFieldGet(_this, _logger).info("starting mediaRecorder");
1986
+ if (!_classPrivateFieldGet(_this, _mediaRecorder)) {
1987
+ _classPrivateFieldGet(_this, _logger).info("mediaRecorder is not defined");
1988
+ _classPrivateFieldGet(_this, _store).setState({
1989
+ status: SCREEN_RECORDER_STATUS.idle,
1990
+ error: SCREEN_RECORDER_ERROR.FailedToStart
1991
+ });
1992
+ return;
1993
+ }
1994
+ if (!_classPrivateFieldGet(_this, _mediaStream) || isStreamEnded(_classPrivateFieldGet(_this, _mediaStream))) {
1995
+ _classPrivateFieldGet(_this, _logger).info("media stream ended, not starting mediaRecorder");
1996
+ _classPrivateFieldGet(_this, _store).setState({
1997
+ status: SCREEN_RECORDER_STATUS.idle,
1998
+ error: SCREEN_RECORDER_ERROR.FailedToStart
1999
+ });
2000
+ return;
2001
+ }
2002
+ _classPrivateFieldGet(_this, _store).setState({
2003
+ status: SCREEN_RECORDER_STATUS.recording
2004
+ });
2005
+ _classPrivateFieldGet(_this, _mediaRecorder).start(5000);
2006
+ _classPrivateFieldGet(_this, _logger).info("started mediaRecorder");
2007
+ _classPrivateFieldGet(_this, _startTimer).call(_this);
2008
+ } catch (error) {
2009
+ _classPrivateFieldGet(_this, _logger).info("Failed to start mediaRecorder", error);
2010
+ _classPrivateFieldGet(_this, _store).setState({
2011
+ status: SCREEN_RECORDER_STATUS.idle,
2012
+ error: SCREEN_RECORDER_ERROR.FailedToStart
2013
+ });
2014
+
2015
+ // To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.
2016
+ if (_classPrivateFieldGet(_this, _mediaRecorder)) {
2017
+ _classPrivateFieldGet(_this, _mediaRecorder).onstop = noop;
2018
+ }
2019
+ if (_classPrivateFieldGet(_this, _mediaStream)) {
2020
+ _classPrivateFieldGet(_this, _stopAllStreams).call(_this);
2021
+ _classPrivateFieldSet(_this, _mediaStream, null);
2022
+ }
2023
+ _classPrivateFieldSet(_this, _stream, null);
2024
+ _classPrivateFieldSet(_this, _audioStream, null);
2025
+ _classPrivateFieldSet(_this, _micAudioStream, null);
2026
+ _classPrivateFieldSet(_this, _mediaRecorder, null);
2027
+ throw error;
2028
+ }
2029
+ }, HALF_A_SECOND_IN_MILLISECONDS));
2030
+ }
2031
+ });
2032
+ _classPrivateFieldInitSpec(this, _startCountdown, {
1972
2033
  writable: true,
1973
2034
  value: function value() {
1974
2035
  if (_classPrivateFieldGet(_this, _countdownTimerId)) return;
@@ -1987,55 +2048,9 @@ var ScreenRecorder = /*#__PURE__*/function () {
1987
2048
  }
1988
2049
  _classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdown, [0]);
1989
2050
  _classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdownEnd);
1990
- _classPrivateFieldGet(_this, _store).setState({
1991
- status: SCREEN_RECORDER_STATUS.recording
1992
- });
1993
2051
  clearInterval(_classPrivateFieldGet(_this, _countdownTimerId));
1994
2052
  _classPrivateFieldSet(_this, _countdownTimerId, null);
1995
- _classPrivateFieldSet(_this, _startRecordingTimeoutID, setTimeout(function () {
1996
- try {
1997
- _classPrivateFieldGet(_this, _logger).info("starting mediaRecorder");
1998
- if (!_classPrivateFieldGet(_this, _mediaRecorder)) {
1999
- _classPrivateFieldGet(_this, _logger).info("mediaRecorder is not defined");
2000
- _classPrivateFieldGet(_this, _store).setState({
2001
- status: SCREEN_RECORDER_STATUS.idle,
2002
- error: SCREEN_RECORDER_ERROR.FailedToStart
2003
- });
2004
- return;
2005
- }
2006
- if (!_classPrivateFieldGet(_this, _mediaStream) || isStreamEnded(_classPrivateFieldGet(_this, _mediaStream))) {
2007
- _classPrivateFieldGet(_this, _logger).info("media stream ended, not starting mediaRecorder");
2008
- _classPrivateFieldGet(_this, _store).setState({
2009
- status: SCREEN_RECORDER_STATUS.idle,
2010
- error: SCREEN_RECORDER_ERROR.FailedToStart
2011
- });
2012
- return;
2013
- }
2014
- _classPrivateFieldGet(_this, _mediaRecorder).start(5000);
2015
- _classPrivateFieldGet(_this, _logger).info("started mediaRecorder");
2016
- _classPrivateFieldGet(_this, _startTimer).call(_this);
2017
- } catch (error) {
2018
- _classPrivateFieldGet(_this, _logger).info("Failed to start mediaRecorder", error);
2019
- _classPrivateFieldGet(_this, _store).setState({
2020
- status: SCREEN_RECORDER_STATUS.idle,
2021
- error: SCREEN_RECORDER_ERROR.FailedToStart
2022
- });
2023
-
2024
- // To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.
2025
- if (_classPrivateFieldGet(_this, _mediaRecorder)) {
2026
- _classPrivateFieldGet(_this, _mediaRecorder).onstop = noop;
2027
- }
2028
- if (_classPrivateFieldGet(_this, _mediaStream)) {
2029
- _classPrivateFieldGet(_this, _stopAllStreams).call(_this);
2030
- _classPrivateFieldSet(_this, _mediaStream, null);
2031
- }
2032
- _classPrivateFieldSet(_this, _stream, null);
2033
- _classPrivateFieldSet(_this, _audioStream, null);
2034
- _classPrivateFieldSet(_this, _micAudioStream, null);
2035
- _classPrivateFieldSet(_this, _mediaRecorder, null);
2036
- throw error;
2037
- }
2038
- }, HALF_A_SECOND_IN_MILLISECONDS));
2053
+ _classPrivateFieldGet(_this, _startMediaRecorder).call(_this);
2039
2054
  return {
2040
2055
  countdownTimeLeft: 0
2041
2056
  };
@@ -2081,7 +2096,6 @@ var ScreenRecorder = /*#__PURE__*/function () {
2081
2096
  _classPrivateFieldGet(_this, _store).setState({
2082
2097
  showTimeLimitWarning: true
2083
2098
  });
2084
- _classPrivateFieldSet(_this, _stopRecordingDueToLimitReachedAudio, new Audio(STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND));
2085
2099
  return;
2086
2100
  }
2087
2101
  _classPrivateFieldGet(_this, _stopRecordingDueToLimitReachedAudio).play();
@@ -2111,11 +2125,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
2111
2125
  }, {
2112
2126
  key: "displaySurface",
2113
2127
  get: function get() {
2114
- var _classPrivateFieldGet17;
2115
- var _classPrivateFieldGet15 = (_classPrivateFieldGet17 = _classPrivateFieldGet(this, _mediaStream)) === null || _classPrivateFieldGet17 === void 0 ? void 0 : _classPrivateFieldGet17.getVideoTracks(),
2116
- _classPrivateFieldGet16 = _slicedToArray(_classPrivateFieldGet15, 1),
2117
- videoTrack = _classPrivateFieldGet16[0];
2118
- return videoTrack.getSettings().displaySurface;
2128
+ var _classPrivateFieldGet15, _classPrivateFieldGet16;
2129
+ var _ref5 = (_classPrivateFieldGet15 = (_classPrivateFieldGet16 = _classPrivateFieldGet(this, _mediaStream)) === null || _classPrivateFieldGet16 === void 0 ? void 0 : _classPrivateFieldGet16.getVideoTracks()) !== null && _classPrivateFieldGet15 !== void 0 ? _classPrivateFieldGet15 : [],
2130
+ _ref6 = _slicedToArray(_ref5, 1),
2131
+ videoTrack = _ref6[0];
2132
+ return videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.getSettings().displaySurface;
2119
2133
  }
2120
2134
  }, {
2121
2135
  key: "audioConfiguration",