(
data: { channels: ArrayLike<number>[]; sampleRate: number; length: number; numberOfChannels: number },
audioContext: AudioContext
)
| 194 | } |
| 195 | |
| 196 | export function deserializeAudioBuffer( |
| 197 | data: { channels: ArrayLike<number>[]; sampleRate: number; length: number; numberOfChannels: number }, |
| 198 | audioContext: AudioContext |
| 199 | ): AudioBuffer { |
| 200 | const buffer = audioContext.createBuffer( |
| 201 | data.numberOfChannels, |
| 202 | data.length, |
| 203 | data.sampleRate |
| 204 | ); |
| 205 | |
| 206 | for (let i = 0; i < data.numberOfChannels; i++) { |
| 207 | // Create a new Float32Array from the stored data to ensure correct type |
| 208 | const channelData = new Float32Array(data.channels[i]); |
| 209 | buffer.copyToChannel(channelData, i); |
| 210 | } |
| 211 | |
| 212 | return buffer; |
| 213 | } |
| 214 | |
| 215 | // ============================================================================ |
| 216 | // Persistent Audio Storage (IndexedDB) |
no outgoing calls
no test coverage detected