1 | import Loader from "./Loader";
|
2 | export default class extends Loader {
|
3 | |
4 |
|
5 |
|
6 | load() {
|
7 | return new Promise((resolve, reject) => {
|
8 | if (this.src.type.match(/audio.*/) ||
|
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 |