organism-react-video
Version:
37 lines (35 loc) • 1.33 kB
JavaScript
;
var _interopRequireDefault = require("reshow-runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _callFunc = _interopRequireDefault(require("call-func"));
// @ts-check
var defaultSourceType = 'video/mp4; codecs="avc1.42E01E,mp4a.40.2"';
var getMediaSource = function getMediaSource(_ref) {
var url = _ref.url,
onUpdate = _ref.onUpdate,
_ref$sourceType = _ref.sourceType,
sourceType = _ref$sourceType === void 0 ? defaultSourceType : _ref$sourceType;
var mediaSource = new MediaSource();
mediaSource.addEventListener("sourceopen", function () {
var sourceBuffer = mediaSource.addSourceBuffer(sourceType);
sourceBuffer.addEventListener("updateend", function () {
if (!sourceBuffer.updating && mediaSource.readyState === "open") {
mediaSource.endOfStream();
}
(0, _callFunc["default"])(onUpdate);
});
fetch(url).then(function (response) {
return response.arrayBuffer();
}).then(function (data) {
// Append the data into the new sourceBuffer.
sourceBuffer.appendBuffer(data);
})["catch"](function () {});
}, {
once: true
});
var src = URL.createObjectURL(mediaSource);
return src;
};
var _default = exports["default"] = getMediaSource;
module.exports = exports.default;