@bigbinary/neeto-media-recorder 2.7.8 → 2.7.10
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/constants.js +3 -1
- package/constants.js.map +1 -1
- package/core.js +138 -58
- package/core.js.map +1 -1
- package/index.js +42 -19
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +2 -1
package/constants.js
CHANGED
|
@@ -19,6 +19,7 @@ var TWO_HUNDRED_MILLISECONDS = 200;
|
|
|
19
19
|
var ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;
|
|
20
20
|
var ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;
|
|
21
21
|
var ONE_SECOND = 1;
|
|
22
|
+
var COUNTDOWN_TIME = 3;
|
|
22
23
|
var UPLOAD_EVENT = {
|
|
23
24
|
onComplete: "onComplete",
|
|
24
25
|
onError: "onError",
|
|
@@ -100,6 +101,7 @@ var MIME_TYPE = {
|
|
|
100
101
|
webmH264: "video/webm;codecs=h264"
|
|
101
102
|
};
|
|
102
103
|
var START_RECORDING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3";
|
|
104
|
+
var COUNTDOWN_TICK_SOUND = "https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.mp3";
|
|
103
105
|
var STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3";
|
|
104
106
|
var RECORDING_LIMIT_REACHED_WARNING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3";
|
|
105
107
|
var RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes
|
|
@@ -108,5 +110,5 @@ var RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours
|
|
|
108
110
|
var MIC_NOT_WORKING_ALERT_TIME = 15;
|
|
109
111
|
var MIC_NOT_WORKING_SILENCE_TIMEOUT = MIC_NOT_WORKING_ALERT_TIME * 1000;
|
|
110
112
|
|
|
111
|
-
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, MIC_NOT_WORKING_ALERT_TIME, MIC_NOT_WORKING_SILENCE_TIMEOUT, 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, RETRYABLE_ERRORS, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, TIMEOUT_ERROR, TOTAL_RETRIES, TWO_HUNDRED_MILLISECONDS, UPLOAD_EVENT, UPLOAD_STATUS };
|
|
113
|
+
export { COUNTDOWN_TICK_SOUND, COUNTDOWN_TIME, DEFAULT_RETRY_CONFIG, HALF_A_SECOND_IN_MILLISECONDS, HAS_CHROME_NAMESPACE, INITIAL_RETRY_DELAY, IS_EXTENSION, IS_SAFARI, IS_SAFARI_EXTENSION, MAX_RETRY_DELAY, MIC_NOT_WORKING_ALERT_TIME, MIC_NOT_WORKING_SILENCE_TIMEOUT, 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, RETRYABLE_ERRORS, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, TIMEOUT_ERROR, TOTAL_RETRIES, TWO_HUNDRED_MILLISECONDS, UPLOAD_EVENT, UPLOAD_STATUS };
|
|
112
114
|
//# 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":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRYABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\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 = {\n onComplete: \"onComplete\",\n onError: \"onError\",\n onProgress: \"onProgress\",\n};\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n error: \"error\",\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 MicPermissionDenied: \"mic_permission_denied\",\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 FailedToStart: \"failed_to_start\",\n InsufficientData: \"insufficient_data\",\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 onReUpload: \"onReUpload\",\n onReUploadFromDisk: \"onReUploadFromDisk\",\n onPause: \"onPause\",\n onResume: \"onResume\",\n onCountdownStart: \"onCountdownStart\",\n onCountdown: \"onCountDown\",\n onCountdownEnd: \"onCountdownEnd\",\n};\n\nexport const TOTAL_RETRIES = 15;\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\nexport const MIC_NOT_WORKING_ALERT_TIME = 15;\nexport const MIC_NOT_WORKING_SILENCE_TIMEOUT =\n MIC_NOT_WORKING_ALERT_TIME * 1000;\n"],"names":["RETRYABLE_ERRORS","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","TWO_HUNDRED_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_HOUR_IN_MILLISECONDS","ONE_SECOND","UPLOAD_EVENT","onComplete","onError","onProgress","UPLOAD_STATUS","uploading","completed","aborting","insufficient_data","error","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","MicPermissionDenied","AbortError","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","FailedToStart","InsufficientData","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","onReUpload","onReUploadFromDisk","onPause","onResume","onCountdownStart","onCountdown","onCountdownEnd","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","MIC_NOT_WORKING_ALERT_TIME","MIC_NOT_WORKING_SILENCE_TIMEOUT"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["node_modules/@babel/runtime/helpers/esm/typeof.js","src/constants.js"],"sourcesContent":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRYABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\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 COUNTDOWN_TIME = 3;\n\nexport const UPLOAD_EVENT = {\n onComplete: \"onComplete\",\n onError: \"onError\",\n onProgress: \"onProgress\",\n};\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n error: \"error\",\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 MicPermissionDenied: \"mic_permission_denied\",\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 FailedToStart: \"failed_to_start\",\n InsufficientData: \"insufficient_data\",\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 onReUpload: \"onReUpload\",\n onReUploadFromDisk: \"onReUploadFromDisk\",\n onPause: \"onPause\",\n onResume: \"onResume\",\n onCountdownStart: \"onCountdownStart\",\n onCountdown: \"onCountDown\",\n onCountdownEnd: \"onCountdownEnd\",\n};\n\nexport const TOTAL_RETRIES = 15;\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 COUNTDOWN_TICK_SOUND =\n \"https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.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\nexport const MIC_NOT_WORKING_ALERT_TIME = 15;\nexport const MIC_NOT_WORKING_SILENCE_TIMEOUT =\n MIC_NOT_WORKING_ALERT_TIME * 1000;\n"],"names":["RETRYABLE_ERRORS","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","TWO_HUNDRED_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_HOUR_IN_MILLISECONDS","ONE_SECOND","COUNTDOWN_TIME","UPLOAD_EVENT","onComplete","onError","onProgress","UPLOAD_STATUS","uploading","completed","aborting","insufficient_data","error","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","MicPermissionDenied","AbortError","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","FailedToStart","InsufficientData","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","onReUpload","onReUploadFromDisk","onPause","onResume","onCountdownStart","onCountdown","onCountdownEnd","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","COUNTDOWN_TICK_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","RECORDING_TIME_LIMIT_PRO_PLAN","MIC_NOT_WORKING_ALERT_TIME","MIC_NOT_WORKING_SILENCE_TIMEOUT"],"mappings":"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","x_google_ignoreList":[0]}
|
package/core.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
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
|
|
3
|
+
import { MIME_TYPE as MIME_TYPE$1, UPLOAD_EVENT, UPLOAD_STATUS, SCREEN_RECORDER_STATUS as SCREEN_RECORDER_STATUS$1, COUNTDOWN_TIME } from '@bigbinary/neeto-media-recorder/constants';
|
|
4
4
|
import { useMultipartS3UploadStatus as useMultipartS3UploadStatus$1, getMultipartS3Uploader as getMultipartS3Uploader$1 } from '@bigbinary/neeto-media-recorder/core';
|
|
5
|
-
import { isNotNil, min, isNil, identity, isEmpty, pick,
|
|
5
|
+
import { isNotNil, min, isNil, identity, isEmpty, pick, not } from 'ramda';
|
|
6
6
|
import platform from 'platform';
|
|
7
7
|
import withImmutableActions from '@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions';
|
|
8
8
|
import { create as create$3 } from 'zustand';
|
|
@@ -547,6 +547,17 @@ function v4(options, buf, offset) {
|
|
|
547
547
|
return unsafeStringify(rnds);
|
|
548
548
|
}
|
|
549
549
|
|
|
550
|
+
var create$2 = function create(_ref) {
|
|
551
|
+
var recordingId = _ref.recordingId,
|
|
552
|
+
payload = _ref.payload;
|
|
553
|
+
return axios.post("/api/v1/recordings/".concat(recordingId, "/abort_upload"), {
|
|
554
|
+
abortUpload: payload
|
|
555
|
+
});
|
|
556
|
+
};
|
|
557
|
+
var abortUploadApi = {
|
|
558
|
+
create: create$2
|
|
559
|
+
};
|
|
560
|
+
|
|
550
561
|
function _setPrototypeOf(t, e) {
|
|
551
562
|
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
552
563
|
return t.__proto__ = e, t;
|
|
@@ -631,6 +642,57 @@ function _wrapNativeSuper(t) {
|
|
|
631
642
|
}, _wrapNativeSuper(t);
|
|
632
643
|
}
|
|
633
644
|
|
|
645
|
+
var ONE_SECOND_IN_MILLISECONDS = 1000;
|
|
646
|
+
var HALF_A_SECOND_IN_MILLISECONDS = 500;
|
|
647
|
+
var TWO_HUNDRED_MILLISECONDS = 200;
|
|
648
|
+
var ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;
|
|
649
|
+
var ONE_SECOND = 1;
|
|
650
|
+
var SCREEN_RECORDER_STATUS = {
|
|
651
|
+
media_aborted: "media_aborted",
|
|
652
|
+
permission_denied: "permission_denied",
|
|
653
|
+
no_specified_media_found: "no_specified_media_found",
|
|
654
|
+
media_in_use: "media_in_use",
|
|
655
|
+
invalid_media_constraints: "invalid_media_constraints",
|
|
656
|
+
no_chrome_flags_set: "no_chrome_flags_set",
|
|
657
|
+
recorder_error: "recorder_error",
|
|
658
|
+
idle: "idle",
|
|
659
|
+
acquiring_media: "acquiring_media",
|
|
660
|
+
media_acquired: "media_acquired",
|
|
661
|
+
restarting: "restarting",
|
|
662
|
+
recording: "recording",
|
|
663
|
+
stopping: "stopping",
|
|
664
|
+
stopped: "stopped",
|
|
665
|
+
paused: "paused"
|
|
666
|
+
};
|
|
667
|
+
var SCREEN_RECORDER_ERROR = {
|
|
668
|
+
MicPermissionDenied: "mic_permission_denied",
|
|
669
|
+
AbortError: "media_aborted",
|
|
670
|
+
NotAllowedError: "permission_denied",
|
|
671
|
+
NotFoundError: "no_specified_media_found",
|
|
672
|
+
NotReadableError: "media_in_use",
|
|
673
|
+
OverconstrainedError: "invalid_media_constraints",
|
|
674
|
+
TypeError: "no_chrome_flags_set",
|
|
675
|
+
None: "",
|
|
676
|
+
NoRecorder: "recorder_error",
|
|
677
|
+
UnSupportedBrowser: "unsupported_browser",
|
|
678
|
+
FailedToStart: "failed_to_start",
|
|
679
|
+
InsufficientData: "insufficient_data"
|
|
680
|
+
};
|
|
681
|
+
var SCREEN_RECORDER_EVENT = {
|
|
682
|
+
onStart: "onStart",
|
|
683
|
+
onStop: "onStop",
|
|
684
|
+
onDiscard: "onDiscard",
|
|
685
|
+
onDataAvailable: "onDataAvailable",
|
|
686
|
+
onDiscardDuringCountdown: "onDiscardDuringCountdown",
|
|
687
|
+
onRestart: "onRestart",
|
|
688
|
+
onReUpload: "onReUpload",
|
|
689
|
+
onReUploadFromDisk: "onReUploadFromDisk",
|
|
690
|
+
onPause: "onPause",
|
|
691
|
+
onResume: "onResume",
|
|
692
|
+
onCountdownStart: "onCountdownStart",
|
|
693
|
+
onCountdown: "onCountDown",
|
|
694
|
+
onCountdownEnd: "onCountdownEnd"
|
|
695
|
+
};
|
|
634
696
|
var TOTAL_RETRIES = 15;
|
|
635
697
|
var INITIAL_RETRY_DELAY = 4000;
|
|
636
698
|
var MAX_RETRY_DELAY = 16000;
|
|
@@ -640,12 +702,17 @@ var DEFAULT_RETRY_CONFIG = {
|
|
|
640
702
|
retryableStatuses: []
|
|
641
703
|
};
|
|
642
704
|
var HAS_CHROME_NAMESPACE = (typeof chrome === "undefined" ? "undefined" : _typeof$1(chrome)) === "object";
|
|
643
|
-
HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);
|
|
705
|
+
var IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);
|
|
644
706
|
platform.name === "Safari";
|
|
645
707
|
var MIME_TYPE = {
|
|
646
708
|
mp4: "video/mp4",
|
|
647
709
|
webmH264: "video/webm;codecs=h264"
|
|
648
710
|
};
|
|
711
|
+
var START_RECORDING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3";
|
|
712
|
+
var COUNTDOWN_TICK_SOUND = "https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.mp3";
|
|
713
|
+
var STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3";
|
|
714
|
+
var RECORDING_LIMIT_REACHED_WARNING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3";
|
|
715
|
+
var RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes
|
|
649
716
|
|
|
650
717
|
var sleep = function sleep(delay) {
|
|
651
718
|
return new Promise(function (resolve) {
|
|
@@ -727,18 +794,6 @@ var buildRetryableApi = function buildRetryableApi(apiConnector) {
|
|
|
727
794
|
}();
|
|
728
795
|
};
|
|
729
796
|
|
|
730
|
-
var create$2 = function create(_ref) {
|
|
731
|
-
var recordingId = _ref.recordingId,
|
|
732
|
-
payload = _ref.payload;
|
|
733
|
-
return axios.post("/api/v1/recordings/".concat(recordingId, "/abort_upload"), {
|
|
734
|
-
abortUpload: payload
|
|
735
|
-
});
|
|
736
|
-
};
|
|
737
|
-
var retryableCreate$2 = buildRetryableApi(create$2);
|
|
738
|
-
var abortUploadApi = {
|
|
739
|
-
create: retryableCreate$2
|
|
740
|
-
};
|
|
741
|
-
|
|
742
797
|
var create$1 = function create(_ref) {
|
|
743
798
|
var recordingId = _ref.recordingId,
|
|
744
799
|
payload = _ref.payload,
|
|
@@ -1191,7 +1246,8 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1191
1246
|
return _classPrivateFieldGet(_this, _completeUploadPromise);
|
|
1192
1247
|
case 14:
|
|
1193
1248
|
_classPrivateFieldGet(_this, _abortController).abort();
|
|
1194
|
-
|
|
1249
|
+
_classPrivateFieldGet(_this, _logger$1).info("abortUpload -> aborting...");
|
|
1250
|
+
_context2.next = 18;
|
|
1195
1251
|
return abortUploadApi.create({
|
|
1196
1252
|
recordingId: recordingId,
|
|
1197
1253
|
payload: {
|
|
@@ -1200,7 +1256,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1200
1256
|
logs: sessionLogs
|
|
1201
1257
|
}
|
|
1202
1258
|
});
|
|
1203
|
-
case
|
|
1259
|
+
case 18:
|
|
1204
1260
|
_classPrivateFieldGet(_this, _logger$1).info("abortUpload -> abort successful");
|
|
1205
1261
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onAbort);
|
|
1206
1262
|
_classPrivateFieldSet(_this, _unUploadedChunks, []);
|
|
@@ -1208,17 +1264,17 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1208
1264
|
_classPrivateFieldSet(_this, _s3PartUploadPromises, []);
|
|
1209
1265
|
_classPrivateFieldSet(_this, _status2, "");
|
|
1210
1266
|
_classPrivateFieldSet(_this, _abortController, null);
|
|
1211
|
-
_context2.next =
|
|
1267
|
+
_context2.next = 30;
|
|
1212
1268
|
break;
|
|
1213
|
-
case
|
|
1214
|
-
_context2.prev =
|
|
1269
|
+
case 27:
|
|
1270
|
+
_context2.prev = 27;
|
|
1215
1271
|
_context2.t0 = _context2["catch"](2);
|
|
1216
|
-
_classPrivateFieldGet(_this, _logger$1).error(_context2.t0);
|
|
1217
|
-
case
|
|
1272
|
+
_classPrivateFieldGet(_this, _logger$1).error("abortUpload -> abort failed", _context2.t0 === null || _context2.t0 === void 0 ? void 0 : _context2.t0.message);
|
|
1273
|
+
case 30:
|
|
1218
1274
|
case "end":
|
|
1219
1275
|
return _context2.stop();
|
|
1220
1276
|
}
|
|
1221
|
-
}, _callee2, null, [[2,
|
|
1277
|
+
}, _callee2, null, [[2, 27]]);
|
|
1222
1278
|
})));
|
|
1223
1279
|
_defineProperty(this, "resetState", function () {
|
|
1224
1280
|
_classPrivateFieldSet(_this, _recordingId, "");
|
|
@@ -1449,10 +1505,10 @@ var DISPLAY_SURFACE = {
|
|
|
1449
1505
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1450
1506
|
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1451
1507
|
var initialState = {
|
|
1452
|
-
status: SCREEN_RECORDER_STATUS.idle,
|
|
1508
|
+
status: SCREEN_RECORDER_STATUS$1.idle,
|
|
1453
1509
|
error: "",
|
|
1454
1510
|
elapsedTime: 0,
|
|
1455
|
-
countdownTimeLeft:
|
|
1511
|
+
countdownTimeLeft: COUNTDOWN_TIME,
|
|
1456
1512
|
showTimeLimitWarning: false
|
|
1457
1513
|
};
|
|
1458
1514
|
var prepareStore = function prepareStore() {
|
|
@@ -1482,6 +1538,7 @@ var _lastTimerUpdatedAt = /*#__PURE__*/new WeakMap();
|
|
|
1482
1538
|
var _timerId = /*#__PURE__*/new WeakMap();
|
|
1483
1539
|
var _countdownTimerId = /*#__PURE__*/new WeakMap();
|
|
1484
1540
|
var _startRecordingAudio = /*#__PURE__*/new WeakMap();
|
|
1541
|
+
var _countdownTickAudio = /*#__PURE__*/new WeakMap();
|
|
1485
1542
|
var _recordingLimitWarningAudio = /*#__PURE__*/new WeakMap();
|
|
1486
1543
|
var _stopRecordingDueToLimitReachedAudio = /*#__PURE__*/new WeakMap();
|
|
1487
1544
|
var _stream = /*#__PURE__*/new WeakMap();
|
|
@@ -1494,6 +1551,7 @@ var _showCountdown = /*#__PURE__*/new WeakMap();
|
|
|
1494
1551
|
var _mimeType = /*#__PURE__*/new WeakMap();
|
|
1495
1552
|
var _dataReceiving = /*#__PURE__*/new WeakMap();
|
|
1496
1553
|
var _stopAllStreams = /*#__PURE__*/new WeakMap();
|
|
1554
|
+
var _playCountdownBeep = /*#__PURE__*/new WeakMap();
|
|
1497
1555
|
var _checkCompatibility = /*#__PURE__*/new WeakMap();
|
|
1498
1556
|
var _acquireMediaStream = /*#__PURE__*/new WeakMap();
|
|
1499
1557
|
var _fireCallbacks = /*#__PURE__*/new WeakMap();
|
|
@@ -1561,6 +1619,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1561
1619
|
writable: true,
|
|
1562
1620
|
value: new Audio(START_RECORDING_SOUND)
|
|
1563
1621
|
});
|
|
1622
|
+
_classPrivateFieldInitSpec(this, _countdownTickAudio, {
|
|
1623
|
+
writable: true,
|
|
1624
|
+
value: new Audio(COUNTDOWN_TICK_SOUND)
|
|
1625
|
+
});
|
|
1564
1626
|
_classPrivateFieldInitSpec(this, _recordingLimitWarningAudio, {
|
|
1565
1627
|
writable: true,
|
|
1566
1628
|
value: new Audio(RECORDING_LIMIT_REACHED_WARNING_SOUND)
|
|
@@ -1734,6 +1796,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1734
1796
|
_defineProperty(this, "pauseRecording", function () {
|
|
1735
1797
|
var _classPrivateFieldGet5;
|
|
1736
1798
|
if (((_classPrivateFieldGet5 = _classPrivateFieldGet(_this, _mediaRecorder)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.state) === "recording") {
|
|
1799
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> pauseRecording.");
|
|
1737
1800
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1738
1801
|
status: SCREEN_RECORDER_STATUS.paused
|
|
1739
1802
|
});
|
|
@@ -1744,6 +1807,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1744
1807
|
_defineProperty(this, "resumeRecording", function () {
|
|
1745
1808
|
var _classPrivateFieldGet6;
|
|
1746
1809
|
if (((_classPrivateFieldGet6 = _classPrivateFieldGet(_this, _mediaRecorder)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.state) === "paused") {
|
|
1810
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> resumeRecording.");
|
|
1747
1811
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1748
1812
|
status: SCREEN_RECORDER_STATUS.recording
|
|
1749
1813
|
});
|
|
@@ -1754,6 +1818,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1754
1818
|
_defineProperty(this, "discardRecording", function () {
|
|
1755
1819
|
var _classPrivateFieldGet7;
|
|
1756
1820
|
if (((_classPrivateFieldGet7 = _classPrivateFieldGet(_this, _mediaRecorder)) === null || _classPrivateFieldGet7 === void 0 ? void 0 : _classPrivateFieldGet7.state) === "inactive") return;
|
|
1821
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> discardRecording.");
|
|
1757
1822
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1758
1823
|
status: SCREEN_RECORDER_STATUS.stopping
|
|
1759
1824
|
});
|
|
@@ -1766,6 +1831,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1766
1831
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onDiscard);
|
|
1767
1832
|
});
|
|
1768
1833
|
_defineProperty(this, "restartRecording", function () {
|
|
1834
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> restartRecording.");
|
|
1769
1835
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1770
1836
|
status: SCREEN_RECORDER_STATUS.stopping
|
|
1771
1837
|
});
|
|
@@ -1778,6 +1844,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1778
1844
|
_this.startRecording();
|
|
1779
1845
|
});
|
|
1780
1846
|
_defineProperty(this, "resetState", function () {
|
|
1847
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> resetState.");
|
|
1781
1848
|
_classPrivateFieldSet(_this, _mediaChunks, []);
|
|
1782
1849
|
_classPrivateFieldSet(_this, _callbacks, {});
|
|
1783
1850
|
_classPrivateFieldSet(_this, _dataReceiving, false);
|
|
@@ -1787,6 +1854,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1787
1854
|
_classPrivateFieldGet(_this, _checkCompatibility).call(_this);
|
|
1788
1855
|
});
|
|
1789
1856
|
_defineProperty(this, "revokePermissions", function () {
|
|
1857
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> revokePermissions.");
|
|
1790
1858
|
if (!_classPrivateFieldGet(_this, _mediaRecorder)) return;
|
|
1791
1859
|
_classPrivateFieldGet(_this, _mediaRecorder).onstop = null;
|
|
1792
1860
|
_classPrivateFieldGet(_this, _stopAllStreams).call(_this);
|
|
@@ -1795,6 +1863,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1795
1863
|
writable: true,
|
|
1796
1864
|
value: function value() {
|
|
1797
1865
|
var _classPrivateFieldGet8, _classPrivateFieldGet9, _classPrivateFieldGet10, _classPrivateFieldGet11, _classPrivateFieldGet12, _classPrivateFieldGet13;
|
|
1866
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> stopAllStreams.");
|
|
1798
1867
|
_classPrivateFieldGet(_this, _mediaStream) && ((_classPrivateFieldGet8 = _classPrivateFieldGet(_this, _mediaStream)) === null || _classPrivateFieldGet8 === void 0 ? void 0 : _classPrivateFieldGet8.getTracks().forEach(function (track) {
|
|
1799
1868
|
return track.stop();
|
|
1800
1869
|
}));
|
|
@@ -1809,6 +1878,13 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1809
1878
|
});
|
|
1810
1879
|
}
|
|
1811
1880
|
});
|
|
1881
|
+
_classPrivateFieldInitSpec(this, _playCountdownBeep, {
|
|
1882
|
+
writable: true,
|
|
1883
|
+
value: function value() {
|
|
1884
|
+
_classPrivateFieldGet(_this, _countdownTickAudio).currentTime = 0;
|
|
1885
|
+
_classPrivateFieldGet(_this, _countdownTickAudio).play();
|
|
1886
|
+
}
|
|
1887
|
+
});
|
|
1812
1888
|
_classPrivateFieldInitSpec(this, _checkCompatibility, {
|
|
1813
1889
|
writable: true,
|
|
1814
1890
|
value: function value() {
|
|
@@ -1829,70 +1905,71 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1829
1905
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
1830
1906
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1831
1907
|
case 0:
|
|
1908
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> acquireMediaStream.");
|
|
1832
1909
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1833
1910
|
status: SCREEN_RECORDER_STATUS.acquiring_media
|
|
1834
1911
|
});
|
|
1835
|
-
_context2.prev =
|
|
1912
|
+
_context2.prev = 2;
|
|
1836
1913
|
if (!_classPrivateFieldGet(_this, _audio)) {
|
|
1837
|
-
_context2.next =
|
|
1914
|
+
_context2.next = 30;
|
|
1838
1915
|
break;
|
|
1839
1916
|
}
|
|
1840
1917
|
_context2.t0 = _classPrivateFieldSet;
|
|
1841
1918
|
_context2.t1 = _this;
|
|
1842
1919
|
_context2.t2 = _micAudioStream;
|
|
1843
|
-
_context2.next =
|
|
1920
|
+
_context2.next = 9;
|
|
1844
1921
|
return window.navigator.mediaDevices.getUserMedia({
|
|
1845
1922
|
audio: _classPrivateFieldGet(_this, _audio) ? _objectSpread({
|
|
1846
1923
|
echoCancellation: false
|
|
1847
1924
|
}, _classPrivateFieldGet(_this, _audio)) : false
|
|
1848
1925
|
});
|
|
1849
|
-
case
|
|
1926
|
+
case 9:
|
|
1850
1927
|
_context2.t3 = _context2.sent;
|
|
1851
1928
|
(0, _context2.t0)(_context2.t1, _context2.t2, _context2.t3);
|
|
1852
1929
|
audioStream = addGainNode(_classPrivateFieldGet(_this, _micAudioStream), 1.75); // Increase volume by 50%
|
|
1853
1930
|
_classPrivateFieldSet(_this, _audioStream, audioStream);
|
|
1854
1931
|
if (!_classPrivateFieldGet(_this, _enableNoiseCancellation)) {
|
|
1855
|
-
_context2.next =
|
|
1932
|
+
_context2.next = 30;
|
|
1856
1933
|
break;
|
|
1857
1934
|
}
|
|
1858
|
-
_context2.prev =
|
|
1935
|
+
_context2.prev = 14;
|
|
1859
1936
|
workletUrl = IS_EXTENSION ?
|
|
1860
1937
|
// eslint-disable-next-line no-undef
|
|
1861
1938
|
chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
|
|
1862
1939
|
audioContext = new AudioContext();
|
|
1863
|
-
_context2.next =
|
|
1940
|
+
_context2.next = 19;
|
|
1864
1941
|
return audioContext.audioWorklet.addModule(workletUrl);
|
|
1865
|
-
case
|
|
1942
|
+
case 19:
|
|
1866
1943
|
audioStreamSource = audioContext.createMediaStreamSource(audioStream);
|
|
1867
1944
|
destinationStream = audioContext.createMediaStreamDestination();
|
|
1868
1945
|
noiseSuppressorNode = new AudioWorkletNode(audioContext, "nn-suppressor-processor");
|
|
1869
1946
|
audioStreamSource.connect(noiseSuppressorNode);
|
|
1870
1947
|
noiseSuppressorNode.connect(destinationStream);
|
|
1871
1948
|
_classPrivateFieldSet(_this, _audioStream, destinationStream.stream);
|
|
1872
|
-
_context2.next =
|
|
1949
|
+
_context2.next = 30;
|
|
1873
1950
|
break;
|
|
1874
|
-
case
|
|
1875
|
-
_context2.prev =
|
|
1876
|
-
_context2.t4 = _context2["catch"](
|
|
1951
|
+
case 27:
|
|
1952
|
+
_context2.prev = 27;
|
|
1953
|
+
_context2.t4 = _context2["catch"](14);
|
|
1877
1954
|
// eslint-disable-next-line no-console
|
|
1878
1955
|
console.error("Failed to load audio worklet:", _context2.t4);
|
|
1879
|
-
case
|
|
1956
|
+
case 30:
|
|
1880
1957
|
if (!_classPrivateFieldGet(_this, _videoStream)) {
|
|
1881
|
-
_context2.next =
|
|
1958
|
+
_context2.next = 34;
|
|
1882
1959
|
break;
|
|
1883
1960
|
}
|
|
1884
1961
|
stream = _classPrivateFieldGet(_this, _videoStream);
|
|
1885
|
-
_context2.next =
|
|
1962
|
+
_context2.next = 37;
|
|
1886
1963
|
break;
|
|
1887
|
-
case
|
|
1888
|
-
_context2.next =
|
|
1964
|
+
case 34:
|
|
1965
|
+
_context2.next = 36;
|
|
1889
1966
|
return window.navigator.mediaDevices.getDisplayMedia({
|
|
1890
1967
|
video: _classPrivateFieldGet(_this, _video) || true,
|
|
1891
1968
|
audio: true
|
|
1892
1969
|
});
|
|
1893
|
-
case 35:
|
|
1894
|
-
stream = _context2.sent;
|
|
1895
1970
|
case 36:
|
|
1971
|
+
stream = _context2.sent;
|
|
1972
|
+
case 37:
|
|
1896
1973
|
// Event triggered when the user clicks on the stop sharing overlay button
|
|
1897
1974
|
stream.getVideoTracks()[0].addEventListener("ended", function () {
|
|
1898
1975
|
_this.stopRecording();
|
|
@@ -1923,11 +2000,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1923
2000
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1924
2001
|
status: SCREEN_RECORDER_STATUS.media_acquired
|
|
1925
2002
|
});
|
|
1926
|
-
_context2.next =
|
|
2003
|
+
_context2.next = 49;
|
|
1927
2004
|
break;
|
|
1928
|
-
case
|
|
1929
|
-
_context2.prev =
|
|
1930
|
-
_context2.t5 = _context2["catch"](
|
|
2005
|
+
case 46:
|
|
2006
|
+
_context2.prev = 46;
|
|
2007
|
+
_context2.t5 = _context2["catch"](2);
|
|
1931
2008
|
if (_classPrivateFieldGet(_this, _audio) && !_classPrivateFieldGet(_this, _audioStream)) {
|
|
1932
2009
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1933
2010
|
error: SCREEN_RECORDER_ERROR.MicPermissionDenied,
|
|
@@ -1939,11 +2016,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1939
2016
|
status: SCREEN_RECORDER_STATUS.idle
|
|
1940
2017
|
});
|
|
1941
2018
|
}
|
|
1942
|
-
case
|
|
2019
|
+
case 49:
|
|
1943
2020
|
case "end":
|
|
1944
2021
|
return _context2.stop();
|
|
1945
2022
|
}
|
|
1946
|
-
}, _callee2, null, [[
|
|
2023
|
+
}, _callee2, null, [[2, 46], [14, 27]]);
|
|
1947
2024
|
}));
|
|
1948
2025
|
function value() {
|
|
1949
2026
|
return _value.apply(this, arguments);
|
|
@@ -1964,6 +2041,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1964
2041
|
_classPrivateFieldInitSpec(this, _onRecordingStart, {
|
|
1965
2042
|
writable: true,
|
|
1966
2043
|
value: function value() {
|
|
2044
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> onRecordingStart.");
|
|
1967
2045
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onStart);
|
|
1968
2046
|
}
|
|
1969
2047
|
});
|
|
@@ -2018,9 +2096,6 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
2018
2096
|
});
|
|
2019
2097
|
return;
|
|
2020
2098
|
}
|
|
2021
|
-
_classPrivateFieldGet(_this, _store).setState({
|
|
2022
|
-
status: SCREEN_RECORDER_STATUS.recording
|
|
2023
|
-
});
|
|
2024
2099
|
_classPrivateFieldGet(_this, _mediaRecorder).start(5000);
|
|
2025
2100
|
_classPrivateFieldGet(_this, _logger).info("started mediaRecorder");
|
|
2026
2101
|
_classPrivateFieldGet(_this, _startTimer).call(_this);
|
|
@@ -2056,20 +2131,25 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
2056
2131
|
_classPrivateFieldSet(_this, _countdownTimerId, setInterval(function () {
|
|
2057
2132
|
_classPrivateFieldGet(_this, _store).setState(function (_ref3) {
|
|
2058
2133
|
var countdownTimeLeft = _ref3.countdownTimeLeft;
|
|
2059
|
-
if (equals(countdownTimeLeft, ONE_SECOND) && !_classPrivateFieldGet(_this, _videoStream)) {
|
|
2060
|
-
_classPrivateFieldGet(_this, _startRecordingAudio).play();
|
|
2061
|
-
}
|
|
2062
2134
|
if (countdownTimeLeft - ONE_SECOND > 0) {
|
|
2063
2135
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdown, [countdownTimeLeft - ONE_SECOND]);
|
|
2136
|
+
_classPrivateFieldGet(_this, _playCountdownBeep).call(_this);
|
|
2064
2137
|
return {
|
|
2065
2138
|
countdownTimeLeft: countdownTimeLeft - ONE_SECOND
|
|
2066
2139
|
};
|
|
2067
2140
|
}
|
|
2068
2141
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdown, [0]);
|
|
2069
|
-
_classPrivateFieldGet(_this,
|
|
2142
|
+
_classPrivateFieldGet(_this, _playCountdownBeep).call(_this);
|
|
2143
|
+
setTimeout(function () {
|
|
2144
|
+
_classPrivateFieldGet(_this, _startRecordingAudio).play();
|
|
2145
|
+
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdownEnd);
|
|
2146
|
+
_classPrivateFieldGet(_this, _store).setState({
|
|
2147
|
+
status: SCREEN_RECORDER_STATUS.recording
|
|
2148
|
+
});
|
|
2149
|
+
_classPrivateFieldGet(_this, _startMediaRecorder).call(_this);
|
|
2150
|
+
}, ONE_SECOND_IN_MILLISECONDS);
|
|
2070
2151
|
clearInterval(_classPrivateFieldGet(_this, _countdownTimerId));
|
|
2071
2152
|
_classPrivateFieldSet(_this, _countdownTimerId, null);
|
|
2072
|
-
_classPrivateFieldGet(_this, _startMediaRecorder).call(_this);
|
|
2073
2153
|
return {
|
|
2074
2154
|
countdownTimeLeft: 0
|
|
2075
2155
|
};
|