@bigbinary/neeto-media-recorder 1.3.11 → 1.3.13
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/README.md +1 -1
- package/constants.js +5 -1
- package/constants.js.map +1 -1
- package/core.js +32 -8
- package/core.js.map +1 -1
- package/index.js +22 -4
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +1 -1
package/README.md
CHANGED
|
@@ -133,7 +133,7 @@ import {
|
|
|
133
133
|
- #### screenRecorder
|
|
134
134
|
|
|
135
135
|
It handles the screen and audio capturing process. The recordings are limited
|
|
136
|
-
to
|
|
136
|
+
to 15 minutes. The various methods provided by `screenRecorder` are:
|
|
137
137
|
|
|
138
138
|
- `startRecording()`
|
|
139
139
|
|
package/constants.js
CHANGED
|
@@ -16,6 +16,7 @@ var RETRIABLE_ERRORS = [500, 503];
|
|
|
16
16
|
var ONE_SECOND_IN_MILLISECONDS = 1000;
|
|
17
17
|
var HALF_A_SECOND_IN_MILLISECONDS = 500;
|
|
18
18
|
var ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;
|
|
19
|
+
var ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;
|
|
19
20
|
var ONE_SECOND = 1;
|
|
20
21
|
var UPLOAD_EVENT = {
|
|
21
22
|
onComplete: "onComplete"
|
|
@@ -85,6 +86,9 @@ var MIME_TYPE = {
|
|
|
85
86
|
};
|
|
86
87
|
var START_RECORDING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3";
|
|
87
88
|
var STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3";
|
|
89
|
+
var RECORDING_LIMIT_REACHED_WARNING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3";
|
|
90
|
+
var RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes
|
|
91
|
+
var RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours
|
|
88
92
|
|
|
89
|
-
export { DEFAULT_RETRY_CONFIG, HALF_A_SECOND_IN_MILLISECONDS, HAS_CHROME_NAMESPACE, INITIAL_RETRY_DELAY, IS_EXTENSION, IS_SAFARI, IS_SAFARI_EXTENSION, MAX_RETRY_DELAY, MIME_TYPE, NETWORK_ERROR, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND, ONE_SECOND_IN_MILLISECONDS, PERMISSIONS_HELP_DOC, RETRIABLE_ERRORS, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, TIMEOUT_ERROR, TOTAL_RETRIES, UPLOAD_EVENT, UPLOAD_STATUS };
|
|
93
|
+
export { DEFAULT_RETRY_CONFIG, HALF_A_SECOND_IN_MILLISECONDS, HAS_CHROME_NAMESPACE, INITIAL_RETRY_DELAY, IS_EXTENSION, IS_SAFARI, IS_SAFARI_EXTENSION, MAX_RETRY_DELAY, MIME_TYPE, NETWORK_ERROR, ONE_HOUR_IN_MILLISECONDS, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND, ONE_SECOND_IN_MILLISECONDS, PERMISSIONS_HELP_DOC, RECORDING_LIMIT_REACHED_WARNING_SOUND, RECORDING_TIME_LIMIT_FREE_PLAN, RECORDING_TIME_LIMIT_PRO_PLAN, RETRIABLE_ERRORS, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, TIMEOUT_ERROR, TOTAL_RETRIES, UPLOAD_EVENT, UPLOAD_STATUS };
|
|
90
94
|
//# sourceMappingURL=constants.js.map
|
package/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["node_modules/@babel/runtime/helpers/esm/typeof.js","src/constants.js"],"sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRIABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const UPLOAD_EVENT = { onComplete: \"onComplete\" };\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n};\n\nexport const SCREEN_RECORDER_STATUS = {\n media_aborted: \"media_aborted\",\n permission_denied: \"permission_denied\",\n no_specified_media_found: \"no_specified_media_found\",\n media_in_use: \"media_in_use\",\n invalid_media_constraints: \"invalid_media_constraints\",\n no_chrome_flags_set: \"no_chrome_flags_set\",\n recorder_error: \"recorder_error\",\n idle: \"idle\",\n acquiring_media: \"acquiring_media\",\n media_acquired: \"media_acquired\",\n restarting: \"restarting\",\n recording: \"recording\",\n stopping: \"stopping\",\n stopped: \"stopped\",\n paused: \"paused\",\n};\n\nexport const SCREEN_RECORDER_ERROR = {\n AbortError: \"media_aborted\",\n NotAllowedError: \"permission_denied\",\n NotFoundError: \"no_specified_media_found\",\n NotReadableError: \"media_in_use\",\n OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n};\n\nexport const SCREEN_RECORDER_EVENT = {\n onStart: \"onStart\",\n onStop: \"onStop\",\n onDiscard: \"onDiscard\",\n onDataAvailable: \"onDataAvailable\",\n onDiscardDuringCountdown: \"onDiscardDuringCountdown\",\n onRestart: \"onRestart\",\n};\n\nexport const TOTAL_RETRIES = 30;\nexport const INITIAL_RETRY_DELAY = 4000;\nexport const MAX_RETRY_DELAY = 16000;\n\nexport const DEFAULT_RETRY_CONFIG = {\n retries: TOTAL_RETRIES,\n retryDelay: INITIAL_RETRY_DELAY,\n retryableStatuses: [],\n};\n\n// No need to localize this since it will only be used in the code\n// eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\nexport const NETWORK_ERROR = \"Network Error\";\nexport const TIMEOUT_ERROR = \"ECONNABORTED\";\n\nexport const HAS_CHROME_NAMESPACE = typeof chrome === \"object\";\n\nexport const IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);\n\nexport const IS_SAFARI = platform.name === \"Safari\";\n\nexport const IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;\n\nexport const PERMISSIONS_HELP_DOC =\n \"https://neetorecordhelp.neetokb.com/p/a-10efcfd7\";\n\nexport const MIME_TYPE = {\n mp4: \"video/mp4\",\n webmH264: \"video/webm;codecs=h264\",\n};\n\nexport const START_RECORDING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3\";\n\nexport const STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3\";\n"],"names":["RETRIABLE_ERRORS","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_SECOND","UPLOAD_EVENT","onComplete","UPLOAD_STATUS","uploading","completed","aborting","SCREEN_RECORDER_STATUS","media_aborted","permission_denied","no_specified_media_found","media_in_use","invalid_media_constraints","no_chrome_flags_set","recorder_error","idle","acquiring_media","media_acquired","restarting","recording","stopping","stopped","paused","SCREEN_RECORDER_ERROR","AbortError","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","TOTAL_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","retryableStatuses","NETWORK_ERROR","TIMEOUT_ERROR","HAS_CHROME_NAMESPACE","chrome","_typeof","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","name","IS_SAFARI_EXTENSION","PERMISSIONS_HELP_DOC","MIME_TYPE","mp4","webmH264","START_RECORDING_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND"],"mappings":";;;AAAe,SAAS,OAAO,CAAC,GAAG,EAAE;AACrC,EAAE,yBAAyB,CAAC;AAC5B;AACA,EAAE,OAAO,OAAO,GAAG,UAAU,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE;AACtG,IAAI,OAAO,OAAO,GAAG,CAAC;AACtB,GAAG,GAAG,UAAU,GAAG,EAAE;AACrB,IAAI,OAAO,GAAG,IAAI,UAAU,IAAI,OAAO,MAAM,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC;AAChI,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;AAClB;;ACLA;IACaA,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAC;AAEnC,IAAMC,0BAA0B,GAAG,KAAI;AACvC,IAAMC,6BAA6B,GAAG,IAAG;AAEnCC,IAAAA,0BAA0B,GAAG,EAAE,GAAGF,2BAA0B;
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["node_modules/@babel/runtime/helpers/esm/typeof.js","src/constants.js"],"sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRIABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\nexport const ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const UPLOAD_EVENT = { onComplete: \"onComplete\" };\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n};\n\nexport const SCREEN_RECORDER_STATUS = {\n media_aborted: \"media_aborted\",\n permission_denied: \"permission_denied\",\n no_specified_media_found: \"no_specified_media_found\",\n media_in_use: \"media_in_use\",\n invalid_media_constraints: \"invalid_media_constraints\",\n no_chrome_flags_set: \"no_chrome_flags_set\",\n recorder_error: \"recorder_error\",\n idle: \"idle\",\n acquiring_media: \"acquiring_media\",\n media_acquired: \"media_acquired\",\n restarting: \"restarting\",\n recording: \"recording\",\n stopping: \"stopping\",\n stopped: \"stopped\",\n paused: \"paused\",\n};\n\nexport const SCREEN_RECORDER_ERROR = {\n AbortError: \"media_aborted\",\n NotAllowedError: \"permission_denied\",\n NotFoundError: \"no_specified_media_found\",\n NotReadableError: \"media_in_use\",\n OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n};\n\nexport const SCREEN_RECORDER_EVENT = {\n onStart: \"onStart\",\n onStop: \"onStop\",\n onDiscard: \"onDiscard\",\n onDataAvailable: \"onDataAvailable\",\n onDiscardDuringCountdown: \"onDiscardDuringCountdown\",\n onRestart: \"onRestart\",\n};\n\nexport const TOTAL_RETRIES = 30;\nexport const INITIAL_RETRY_DELAY = 4000;\nexport const MAX_RETRY_DELAY = 16000;\n\nexport const DEFAULT_RETRY_CONFIG = {\n retries: TOTAL_RETRIES,\n retryDelay: INITIAL_RETRY_DELAY,\n retryableStatuses: [],\n};\n\n// No need to localize this since it will only be used in the code\n// eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\nexport const NETWORK_ERROR = \"Network Error\";\nexport const TIMEOUT_ERROR = \"ECONNABORTED\";\n\nexport const HAS_CHROME_NAMESPACE = typeof chrome === \"object\";\n\nexport const IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);\n\nexport const IS_SAFARI = platform.name === \"Safari\";\n\nexport const IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;\n\nexport const PERMISSIONS_HELP_DOC =\n \"https://neetorecordhelp.neetokb.com/p/a-10efcfd7\";\n\nexport const MIME_TYPE = {\n mp4: \"video/mp4\",\n webmH264: \"video/webm;codecs=h264\",\n};\n\nexport const START_RECORDING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3\";\n\nexport const STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3\";\n\nexport const RECORDING_LIMIT_REACHED_WARNING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3\";\n\nexport const RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes\nexport const RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours\n"],"names":["RETRIABLE_ERRORS","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_HOUR_IN_MILLISECONDS","ONE_SECOND","UPLOAD_EVENT","onComplete","UPLOAD_STATUS","uploading","completed","aborting","SCREEN_RECORDER_STATUS","media_aborted","permission_denied","no_specified_media_found","media_in_use","invalid_media_constraints","no_chrome_flags_set","recorder_error","idle","acquiring_media","media_acquired","restarting","recording","stopping","stopped","paused","SCREEN_RECORDER_ERROR","AbortError","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","TOTAL_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","retryableStatuses","NETWORK_ERROR","TIMEOUT_ERROR","HAS_CHROME_NAMESPACE","chrome","_typeof","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","name","IS_SAFARI_EXTENSION","PERMISSIONS_HELP_DOC","MIME_TYPE","mp4","webmH264","START_RECORDING_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","RECORDING_TIME_LIMIT_PRO_PLAN"],"mappings":"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"}
|
package/core.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { isPresent, isNot, existsBy, isNotEmpty } from '@bigbinary/neeto-cist';
|
|
3
|
-
import { RETRIABLE_ERRORS, UPLOAD_EVENT, UPLOAD_STATUS, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, ONE_SECOND, HALF_A_SECOND_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND } from '@bigbinary/neeto-media-recorder/constants';
|
|
4
|
-
import { isNotNil, min, identity, isEmpty, isNil, pick, equals } from 'ramda';
|
|
3
|
+
import { RETRIABLE_ERRORS, UPLOAD_EVENT, UPLOAD_STATUS, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, RECORDING_LIMIT_REACHED_WARNING_SOUND, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, ONE_SECOND, HALF_A_SECOND_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS as ONE_SECOND_IN_MILLISECONDS$1, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND } from '@bigbinary/neeto-media-recorder/constants';
|
|
4
|
+
import { isNotNil, min, identity, isEmpty, isNil, pick, equals, not } from 'ramda';
|
|
5
5
|
import platform from 'platform';
|
|
6
6
|
import withImmutableActions from '@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions';
|
|
7
7
|
import { create as create$3 } from 'zustand';
|
|
@@ -629,6 +629,8 @@ function _wrapNativeSuper(Class) {
|
|
|
629
629
|
return _wrapNativeSuper(Class);
|
|
630
630
|
}
|
|
631
631
|
|
|
632
|
+
var ONE_SECOND_IN_MILLISECONDS = 1000;
|
|
633
|
+
var ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;
|
|
632
634
|
var TOTAL_RETRIES = 30;
|
|
633
635
|
var INITIAL_RETRY_DELAY = 4000;
|
|
634
636
|
var MAX_RETRY_DELAY = 16000;
|
|
@@ -649,6 +651,8 @@ var MIME_TYPE = {
|
|
|
649
651
|
mp4: "video/mp4",
|
|
650
652
|
webmH264: "video/webm;codecs=h264"
|
|
651
653
|
};
|
|
654
|
+
var RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes
|
|
655
|
+
// 2 hours
|
|
652
656
|
|
|
653
657
|
var sleep = function sleep(delay) {
|
|
654
658
|
return new Promise(function (resolve) {
|
|
@@ -1117,8 +1121,7 @@ var DISPLAY_SURFACE = {
|
|
|
1117
1121
|
window: "window",
|
|
1118
1122
|
browser: "browser"
|
|
1119
1123
|
};
|
|
1120
|
-
|
|
1121
|
-
var RECORDING_TIME_LIMIT_WARNING_TIME = 2400000; // 40 minutes
|
|
1124
|
+
// 14 minutes
|
|
1122
1125
|
|
|
1123
1126
|
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
1124
1127
|
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -1194,9 +1197,11 @@ var _lastTimerUpdatedAt = /*#__PURE__*/new WeakMap();
|
|
|
1194
1197
|
var _timerId = /*#__PURE__*/new WeakMap();
|
|
1195
1198
|
var _countdownTimerId = /*#__PURE__*/new WeakMap();
|
|
1196
1199
|
var _startRecordingAudio = /*#__PURE__*/new WeakMap();
|
|
1200
|
+
var _recordingLimitWarningAudio = /*#__PURE__*/new WeakMap();
|
|
1197
1201
|
var _stopRecordingDueToLimitReachedAudio = /*#__PURE__*/new WeakMap();
|
|
1198
1202
|
var _stream = /*#__PURE__*/new WeakMap();
|
|
1199
1203
|
var _audioStream = /*#__PURE__*/new WeakMap();
|
|
1204
|
+
var _timeLimit = /*#__PURE__*/new WeakMap();
|
|
1200
1205
|
var _checkCompatibility = /*#__PURE__*/new WeakMap();
|
|
1201
1206
|
var _acquireMediaStream = /*#__PURE__*/new WeakMap();
|
|
1202
1207
|
var _fireCallbacks = /*#__PURE__*/new WeakMap();
|
|
@@ -1255,6 +1260,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1255
1260
|
writable: true,
|
|
1256
1261
|
value: new Audio(START_RECORDING_SOUND)
|
|
1257
1262
|
});
|
|
1263
|
+
_classPrivateFieldInitSpec(this, _recordingLimitWarningAudio, {
|
|
1264
|
+
writable: true,
|
|
1265
|
+
value: new Audio(RECORDING_LIMIT_REACHED_WARNING_SOUND)
|
|
1266
|
+
});
|
|
1258
1267
|
_classPrivateFieldInitSpec(this, _stopRecordingDueToLimitReachedAudio, {
|
|
1259
1268
|
writable: true,
|
|
1260
1269
|
value: void 0
|
|
@@ -1267,9 +1276,17 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1267
1276
|
writable: true,
|
|
1268
1277
|
value: void 0
|
|
1269
1278
|
});
|
|
1279
|
+
_classPrivateFieldInitSpec(this, _timeLimit, {
|
|
1280
|
+
writable: true,
|
|
1281
|
+
value: RECORDING_TIME_LIMIT_FREE_PLAN
|
|
1282
|
+
});
|
|
1270
1283
|
_defineProperty(this, "setAudioConfiguration", function (audio) {
|
|
1271
1284
|
return _classPrivateFieldSet(_this, _audio, audio);
|
|
1272
1285
|
});
|
|
1286
|
+
_defineProperty(this, "setTimeLimit", function () {
|
|
1287
|
+
var timeLimit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : RECORDING_TIME_LIMIT_FREE_PLAN;
|
|
1288
|
+
return _classPrivateFieldSet(_this, _timeLimit, timeLimit);
|
|
1289
|
+
});
|
|
1273
1290
|
_defineProperty(this, "getWebmMediaBlob", function () {
|
|
1274
1291
|
var _getMediaRecorderOpti, _getMediaRecorderOpti2;
|
|
1275
1292
|
return new Blob(_classPrivateFieldGet(_this, _mediaChunks), {
|
|
@@ -1619,7 +1636,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1619
1636
|
countdownTimeLeft: 0
|
|
1620
1637
|
};
|
|
1621
1638
|
});
|
|
1622
|
-
}, ONE_SECOND_IN_MILLISECONDS));
|
|
1639
|
+
}, ONE_SECOND_IN_MILLISECONDS$1));
|
|
1623
1640
|
}
|
|
1624
1641
|
});
|
|
1625
1642
|
_classPrivateFieldInitSpec(this, _startTimer, {
|
|
@@ -1637,7 +1654,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1637
1654
|
elapsedTime: newElapsedTime
|
|
1638
1655
|
};
|
|
1639
1656
|
});
|
|
1640
|
-
}, ONE_SECOND_IN_MILLISECONDS));
|
|
1657
|
+
}, ONE_SECOND_IN_MILLISECONDS$1));
|
|
1641
1658
|
}
|
|
1642
1659
|
});
|
|
1643
1660
|
_classPrivateFieldInitSpec(this, _stopTimer, {
|
|
@@ -1653,8 +1670,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1653
1670
|
_classPrivateFieldInitSpec(this, _checkIfTimeLimitReached, {
|
|
1654
1671
|
writable: true,
|
|
1655
1672
|
value: function value(elapsedTime) {
|
|
1656
|
-
|
|
1657
|
-
if (elapsedTime
|
|
1673
|
+
var oneMinuteBeforeTimeLimit = _classPrivateFieldGet(_this, _timeLimit) - ONE_MINUTE_IN_MILLISECONDS;
|
|
1674
|
+
if (elapsedTime <= oneMinuteBeforeTimeLimit) return;
|
|
1675
|
+
if (elapsedTime < _classPrivateFieldGet(_this, _timeLimit) && elapsedTime > oneMinuteBeforeTimeLimit) {
|
|
1676
|
+
not(_classPrivateFieldGet(_this, _store).getState().showTimeLimitWarning) && _classPrivateFieldGet(_this, _recordingLimitWarningAudio).play();
|
|
1658
1677
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1659
1678
|
showTimeLimitWarning: true
|
|
1660
1679
|
});
|
|
@@ -1680,6 +1699,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1680
1699
|
get: function get() {
|
|
1681
1700
|
return _classPrivateFieldGet(this, _store);
|
|
1682
1701
|
}
|
|
1702
|
+
}, {
|
|
1703
|
+
key: "timeLimit",
|
|
1704
|
+
get: function get() {
|
|
1705
|
+
return _classPrivateFieldGet(this, _timeLimit);
|
|
1706
|
+
}
|
|
1683
1707
|
}]);
|
|
1684
1708
|
return ScreenRecorder;
|
|
1685
1709
|
}();
|