canvas-to-video
Version:
49 lines (43 loc) • 4.57 kB
JavaScript
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
;