waveform-playlist-nartj
Version:
Multiple track web audio editor and player with waveform preview
71 lines (53 loc) • 3.13 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _Loader2 = _interopRequireDefault(require("./Loader"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
var _default = /*#__PURE__*/function (_Loader) {
(0, _inherits2["default"])(_default, _Loader);
var _super = _createSuper(_default);
function _default() {
(0, _classCallCheck2["default"])(this, _default);
return _super.apply(this, arguments);
}
(0, _createClass2["default"])(_default, [{
key: "load",
/*
* Loads an audio file via a FileReader
*/
value: function load() {
var _this = this;
return new Promise(function (resolve, reject) {
if (_this.src.type.match(/audio.*/) || // added for problems with Firefox mime types + ogg.
_this.src.type.match(/video\/ogg/)) {
var fr = new FileReader();
fr.readAsArrayBuffer(_this.src);
fr.addEventListener('progress', function (e) {
(0, _get2["default"])((0, _getPrototypeOf2["default"])(_default.prototype), "fileProgress", _this).call(_this, e);
});
fr.addEventListener('load', function (e) {
var decoderPromise = (0, _get2["default"])((0, _getPrototypeOf2["default"])(_default.prototype), "fileLoad", _this).call(_this, e);
decoderPromise.then(function (audioBuffer) {
resolve(audioBuffer);
})["catch"](reject);
});
fr.addEventListener('error', reject);
} else {
reject(Error("Unsupported file type ".concat(_this.src.type)));
}
});
}
}]);
return _default;
}(_Loader2["default"]);
exports["default"] = _default;