(worker: Worker, audioContextSampleRate: number)
| 53 | |
| 54 | // Send init command to a worker, then send warmup BOS page |
| 55 | const sendInitCommand = (worker: Worker, audioContextSampleRate: number): void => { |
| 56 | worker.postMessage({ |
| 57 | command: "init", |
| 58 | bufferLength: 960 * audioContextSampleRate / 24000, |
| 59 | decoderSampleRate: 24000, |
| 60 | outputBufferSampleRate: audioContextSampleRate, |
| 61 | resampleQuality: 0, |
| 62 | }); |
| 63 | |
| 64 | // After a short delay, send warmup BOS page to trigger decoder's internal init |
| 65 | setTimeout(() => { |
| 66 | const bosPage = createWarmupBosPage(); |
| 67 | console.log("Sending warmup BOS page to decoder"); |
| 68 | worker.postMessage({ |
| 69 | command: "decode", |
| 70 | pages: bosPage, |
| 71 | }); |
| 72 | }, 100); |
| 73 | }; |
| 74 | |
| 75 | // Singleton pre-warmed worker that starts loading WASM immediately |
| 76 | let prewarmedWorker: Worker | null = null; |
no test coverage detected