|
| 1 | + |
1 | 2 | <!DOCTYPE html> |
2 | 3 | <html> |
3 | 4 | <head> |
4 | | - <title>Stream audio from fetch() in Worker to AudioWorklet</title> |
| 5 | + <title>Stream audio from Worker to AudioWorklet</title> |
5 | 6 | </head> |
6 | 7 |
|
7 | 8 | <body> |
| 9 | + <pre> |
| 10 | +DELTAnine Live at 8X10 on 2013-12-11 |
| 11 | +(Deltanine121113Pt3Wav.wav size 291MB duration 27:27)</pre |
| 12 | + > |
8 | 13 | <button>Start Audio Playback</button> |
9 | 14 | <script> |
| 15 | + gc(); |
10 | 16 | // AudioWorkletStream |
11 | 17 | // Stream audio from Worker to AudioWorklet |
12 | 18 | // guest271314 2-24-2020 |
|
44 | 50 | 'audio-data-worklet-stream', |
45 | 51 | workletOptions |
46 | 52 | ); |
47 | | - aw.onprocessorerror = e => console.error(e); |
48 | 53 | aw.connect(ac.destination); |
49 | | - // transfer sources, here, e.g. |
50 | | - // Native File System file handle https://github.com/WICG/native-file-system/issues/117 |
51 | | - // ReadableStream, WritableStream https://github.com/whatwg/streams/blob/master/transferable-streams-explainer.md |
52 | 54 | const worker = new Worker('worker.js', { |
53 | 55 | type: 'module', |
54 | 56 | }); |
|
59 | 61 | [aw.port] |
60 | 62 | ); |
61 | 63 | worker.onmessage = async e => { |
62 | | - // use suspend(), resume() to synchronize to degree possible |
63 | 64 | if (e.data.start) { |
64 | 65 | await ac.resume(); |
65 | 66 | } |
|
77 | 78 | }); |
78 | 79 | } |
79 | 80 | } |
| 81 | + |
80 | 82 | button.onclick = async _ => { |
81 | 83 | button.disabled = true; |
82 | 84 | button.textContent = 'Audio Playing'; |
83 | 85 | // set parameters as arrays for potential "infinite" input, output stream |
84 | | - let workletStream = new AudioWorkletStream({ |
| 86 | + let workletStream = new AudioWorkletStream({ |
85 | 87 | urls: [ |
86 | | - /* |
87 | | - 'https://ia800301.us.archive.org/10/items/DELTAnine2013-12-11.WAV/Deltanine121113Pt3Wav.wav', // 291MB |
88 | | - */ |
89 | | - 'house--64kbs-0-wav', |
90 | | - 'house--64kbs-1-wav', |
91 | | - 'house--64kbs-2-wav', |
92 | | - 'house--64kbs-3-wav' |
| 88 | + 'https://ia800301.us.archive.org/10/items/DELTAnine2013-12-11.WAV/Deltanine121113Pt3Wav.wav', |
93 | 89 | ], |
94 | 90 | latencyHint: 1.0, |
95 | 91 | workletOptions: { |
96 | | - numberOfInputs: 2, |
| 92 | + numberOfInputs: 1, |
97 | 93 | numberOfOutputs: 2, |
98 | 94 | channelCount: 2, |
99 | 95 | processorOptions: { |
100 | | - buffers: new Map(), |
101 | 96 | codec: 'audio/wav', |
102 | | - processStarted: false, |
103 | | - i: 0, |
104 | | - n: 0, |
| 97 | + offset: 0 |
105 | 98 | }, |
106 | 99 | }, |
107 | 100 | }); |
|
0 commit comments