-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
35 lines (35 loc) · 830 Bytes
/
index.js
File metadata and controls
35 lines (35 loc) · 830 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
try {
const ac = new AudioContext({
numberOfChannels: 1,
sampleRate: 33333,
});
await ac.audioWorklet.addModule("audioWorklet.js");
const worker = new SharedWorker("worker.js", {
name: "audio-worklet-fetch-worker",
type: "module",
});
ac.onstatechange = (e) => {
console.log(e.type, ac.state);
};
worker.onerror = (e) => {
console.error(e.message);
};
const aw = new AudioWorkletNode(ac, "audio-worklet-fetch-worker", {
numberOfInputs: 1,
numberOfOutputs: 1,
channelCount: 1,
});
aw.onprocessorerror = (e) => {
throw e;
};
aw.connect(ac.destination);
aw.port.postMessage(null, [worker.port]);
aw.port.onmessage = async (e) => {
console.log(e.data);
aw.disconnect();
aw.port.close();
await ac.close();
};
} catch (e) {
console.error(e);
}