@bigbinary/neeto-media-recorder 2.4.0 → 2.4.1

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
@@ -773,6 +773,14 @@ var partPresignedUrlApi = {
773
773
  create: retryableCreate
774
774
  };
775
775
 
776
+ // https://www.w3.org/TR/screen-capture/#displaycapturesurfacetype
777
+ var DISPLAY_SURFACE = {
778
+ monitor: "monitor",
779
+ window: "window",
780
+ browser: "browser"
781
+ };
782
+ var MINIMUM_CHROMIUM_VERSION_FOR_MP4 = "128.0.6613.85";
783
+
776
784
  var getUnSupportedConstraints = function getUnSupportedConstraints(mediaType) {
777
785
  var supportedMediaConstraints = navigator.mediaDevices.getSupportedConstraints();
778
786
  return Object.keys(mediaType).filter(function (constraint) {
@@ -799,9 +807,28 @@ var isStreamEnded = function isStreamEnded(mediaStream) {
799
807
  readyState: "ended"
800
808
  }, mediaStream.getTracks());
801
809
  };
810
+ function getChromiumVersion() {
811
+ var userAgent = navigator.userAgent;
812
+ var match = userAgent.match(/Chrom(e|ium)\/(([0-9][.]?)+)/);
813
+ if (match) {
814
+ return match[2];
815
+ }
816
+ return null;
817
+ }
802
818
  var getSupportedMimeType = function getSupportedMimeType(fallback) {
803
819
  if (MediaRecorder.isTypeSupported(MIME_TYPE.mp4)) {
804
- return MIME_TYPE.mp4;
820
+ if (platform.name === "Safari") {
821
+ return MIME_TYPE.mp4;
822
+ }
823
+ var chromiumVersion = getChromiumVersion();
824
+ if (isNil(chromiumVersion)) {
825
+ return MIME_TYPE.webmH264;
826
+ }
827
+ var isChromiumVersionSupported = chromiumVersion >= MINIMUM_CHROMIUM_VERSION_FOR_MP4;
828
+ if (isChromiumVersionSupported) {
829
+ return MIME_TYPE.mp4;
830
+ }
831
+ return MIME_TYPE.webmH264;
805
832
  } else if (MediaRecorder.isTypeSupported(MIME_TYPE.webmH264)) {
806
833
  return MIME_TYPE.webmH264;
807
834
  }
@@ -1314,14 +1341,6 @@ function _slicedToArray(arr, i) {
1314
1341
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
1315
1342
  }
1316
1343
 
1317
- // https://www.w3.org/TR/screen-capture/#displaycapturesurfacetype
1318
- var DISPLAY_SURFACE = {
1319
- monitor: "monitor",
1320
- window: "window",
1321
- browser: "browser"
1322
- };
1323
- // 14 minutes
1324
-
1325
1344
  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; }
1326
1345
  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; }
1327
1346
  var initialState = {