extendable-media-recorder-wav-encoder-worker
Version:
The worker which is used by the extendable-media-recorder-wav-encoder package.
18 lines (17 loc) • 842 B
JavaScript
export const encodeHeader = (dataView, bitRate, numberOfChannels, numberOfSamples, sampleRate) => {
const bytesPerSample = bitRate >> 3;
const dataChunkSize = Math.min(numberOfSamples * numberOfChannels * bytesPerSample, 4294967251);
dataView.setUint32(0, 1380533830);
dataView.setUint32(4, dataChunkSize + 36, true);
dataView.setUint32(8, 1463899717);
dataView.setUint32(12, 1718449184);
dataView.setUint32(16, 16, true);
dataView.setUint16(20, 1, true);
dataView.setUint16(22, numberOfChannels, true);
dataView.setUint32(24, sampleRate, true);
dataView.setUint32(28, sampleRate * numberOfChannels * bytesPerSample, true);
dataView.setUint16(32, numberOfChannels * bytesPerSample, true);
dataView.setUint16(34, bitRate, true);
dataView.setUint32(36, 1684108385);
dataView.setUint32(40, dataChunkSize, true);
};