UNPKG

852 BJavaScriptView Raw
1import Loader from "./Loader";
2export default class extends Loader {
3 /*
4 * Loads an audio file via a FileReader
5 */
6 load() {
7 return new Promise((resolve, reject) => {
8 if (this.src.type.match(/audio.*/) || // added for problems with Firefox mime types + ogg.
9 this.src.type.match(/video\/ogg/)) {
10 const fr = new FileReader();
11 fr.readAsArrayBuffer(this.src);
12 fr.addEventListener("progress", e => {
13 super.fileProgress(e);
14 });
15 fr.addEventListener("load", e => {
16 const decoderPromise = super.fileLoad(e);
17 decoderPromise.then(audioBuffer => {
18 resolve(audioBuffer);
19 }).catch(reject);
20 });
21 fr.addEventListener("error", reject);
22 } else {
23 reject(Error(`Unsupported file type ${this.src.type}`));
24 }
25 });
26 }
27
28}
\No newline at end of file