UNPKG

canvas-to-video

Version:
49 lines (43 loc) 4.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _default = function _default(canvas, _ref) { var timeslice = _ref.timeslice, duration = _ref.duration, _ref$mimeType = _ref.mimeType, mimeType = _ref$mimeType === void 0 ? 'video/webm' : _ref$mimeType, _ref$audioBitsPerSeco = _ref.audioBitsPerSecond, audioBitsPerSecond = _ref$audioBitsPerSeco === void 0 ? 0 : _ref$audioBitsPerSeco, _ref$videoBitsPerSeco = _ref.videoBitsPerSecond, videoBitsPerSecond = _ref$videoBitsPerSeco === void 0 ? 25000000 : _ref$videoBitsPerSeco; return new Promise(function (resolve, reject) { try { var stream = canvas.captureStream(); var blobs = []; var recorder = new MediaRecorder(stream, { mimeType: mimeType, audioBitsPerSecond: audioBitsPerSecond, videoBitsPerSecond: videoBitsPerSecond }); recorder.ondataavailable = function (event) { if (event.data && event.data.size > 0) { blobs.push(event.data); } if (blobs.length === duration / timeslice) { stream.getTracks()[0].stop(); recorder.stop(); resolve(new Blob(blobs, { type: mimeType })); } }; recorder.start(timeslice); } catch (e) { reject(e); } }); }; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJjYW52YXMiLCJ0aW1lc2xpY2UiLCJkdXJhdGlvbiIsIm1pbWVUeXBlIiwiYXVkaW9CaXRzUGVyU2Vjb25kIiwidmlkZW9CaXRzUGVyU2Vjb25kIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzdHJlYW0iLCJjYXB0dXJlU3RyZWFtIiwiYmxvYnMiLCJyZWNvcmRlciIsIk1lZGlhUmVjb3JkZXIiLCJvbmRhdGFhdmFpbGFibGUiLCJldmVudCIsImRhdGEiLCJzaXplIiwicHVzaCIsImxlbmd0aCIsImdldFRyYWNrcyIsInN0b3AiLCJCbG9iIiwidHlwZSIsInN0YXJ0IiwiZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztlQUFlLGtCQUNiQSxNQURhO0FBQUEsTUFHWEMsU0FIVyxRQUdYQSxTQUhXO0FBQUEsTUFJWEMsUUFKVyxRQUlYQSxRQUpXO0FBQUEsMkJBS1hDLFFBTFc7QUFBQSxNQUtYQSxRQUxXLDhCQUtBLFlBTEE7QUFBQSxtQ0FNWEMsa0JBTlc7QUFBQSxNQU1YQSxrQkFOVyxzQ0FNVSxDQU5WO0FBQUEsbUNBT1hDLGtCQVBXO0FBQUEsTUFPWEEsa0JBUFcsc0NBT1UsUUFQVjtBQUFBLFNBVWIsSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUMvQixRQUFJO0FBQ0YsVUFBTUMsTUFBTSxHQUFHVCxNQUFNLENBQUNVLGFBQVAsRUFBZjtBQUNBLFVBQU1DLEtBQUssR0FBRyxFQUFkO0FBQ0EsVUFBTUMsUUFBUSxHQUFHLElBQUlDLGFBQUosQ0FBa0JKLE1BQWxCLEVBQTBCO0FBQ3pDTixRQUFBQSxRQUFRLEVBQVJBLFFBRHlDO0FBRXpDQyxRQUFBQSxrQkFBa0IsRUFBbEJBLGtCQUZ5QztBQUd6Q0MsUUFBQUEsa0JBQWtCLEVBQWxCQTtBQUh5QyxPQUExQixDQUFqQjs7QUFNQU8sTUFBQUEsUUFBUSxDQUFDRSxlQUFULEdBQTJCLFVBQUFDLEtBQUssRUFBSTtBQUNsQyxZQUFJQSxLQUFLLENBQUNDLElBQU4sSUFBY0QsS0FBSyxDQUFDQyxJQUFOLENBQVdDLElBQVgsR0FBa0IsQ0FBcEMsRUFBdUM7QUFDckNOLFVBQUFBLEtBQUssQ0FBQ08sSUFBTixDQUFXSCxLQUFLLENBQUNDLElBQWpCO0FBQ0Q7O0FBRUQsWUFBSUwsS0FBSyxDQUFDUSxNQUFOLEtBQWlCakIsUUFBUSxHQUFHRCxTQUFoQyxFQUEyQztBQUN6Q1EsVUFBQUEsTUFBTSxDQUFDVyxTQUFQLEdBQW1CLENBQW5CLEVBQXNCQyxJQUF0QjtBQUNBVCxVQUFBQSxRQUFRLENBQUNTLElBQVQ7QUFFQWQsVUFBQUEsT0FBTyxDQUFDLElBQUllLElBQUosQ0FBU1gsS0FBVCxFQUFnQjtBQUFFWSxZQUFBQSxJQUFJLEVBQUVwQjtBQUFSLFdBQWhCLENBQUQsQ0FBUDtBQUNEO0FBQ0YsT0FYRDs7QUFhQVMsTUFBQUEsUUFBUSxDQUFDWSxLQUFULENBQWV2QixTQUFmO0FBQ0QsS0F2QkQsQ0F1QkUsT0FBT3dCLENBQVAsRUFBVTtBQUNWakIsTUFBQUEsTUFBTSxDQUFDaUIsQ0FBRCxDQUFOO0FBQ0Q7QUFDRixHQTNCRCxDQVZhO0FBQUEsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IChcbiAgY2FudmFzLFxuICB7XG4gICAgdGltZXNsaWNlLFxuICAgIGR1cmF0aW9uLFxuICAgIG1pbWVUeXBlID0gJ3ZpZGVvL3dlYm0nLFxuICAgIGF1ZGlvQml0c1BlclNlY29uZCA9IDAsXG4gICAgdmlkZW9CaXRzUGVyU2Vjb25kID0gMjUwMDAwMDAsXG4gIH1cbikgPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdHJlYW0gPSBjYW52YXMuY2FwdHVyZVN0cmVhbSgpO1xuICAgICAgY29uc3QgYmxvYnMgPSBbXTtcbiAgICAgIGNvbnN0IHJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIoc3RyZWFtLCB7XG4gICAgICAgIG1pbWVUeXBlLFxuICAgICAgICBhdWRpb0JpdHNQZXJTZWNvbmQsXG4gICAgICAgIHZpZGVvQml0c1BlclNlY29uZCxcbiAgICAgIH0pO1xuXG4gICAgICByZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSBldmVudCA9PiB7XG4gICAgICAgIGlmIChldmVudC5kYXRhICYmIGV2ZW50LmRhdGEuc2l6ZSA+IDApIHtcbiAgICAgICAgICBibG9icy5wdXNoKGV2ZW50LmRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJsb2JzLmxlbmd0aCA9PT0gZHVyYXRpb24gLyB0aW1lc2xpY2UpIHtcbiAgICAgICAgICBzdHJlYW0uZ2V0VHJhY2tzKClbMF0uc3RvcCgpO1xuICAgICAgICAgIHJlY29yZGVyLnN0b3AoKTtcblxuICAgICAgICAgIHJlc29sdmUobmV3IEJsb2IoYmxvYnMsIHsgdHlwZTogbWltZVR5cGUgfSkpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZWNvcmRlci5zdGFydCh0aW1lc2xpY2UpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChlKTtcbiAgICB9XG4gIH0pO1xuIl19