write method
Write a WAVE file header.
Implementation
int write(EventSink<List<int>> out) {
/* RIFF header */
writeId(out, 'RIFF'); // Chunk ID
writeInt32(out, 36 + mNumBytes); // Chunk Body Size
writeId(out, 'WAVE'); // RIFF Form Type
/* fmt chunk */
writeId(out, 'fmt ');
writeInt32(
out,
16,
); // Size of the rest of the Sub-chunk which follows this number. // 18???
writeInt16(out, mFormat);
writeInt16(out, mNumChannels);
writeInt32(out, mSampleRate);
writeInt32(
out,
(mNumChannels * mSampleRate * mBitsPerSample / 8).floor(),
); // Average Bytes per second
writeInt16(
out,
(mNumChannels * mBitsPerSample / 8).floor(),
); // BlocK Align in bytes
writeInt16(out, mBitsPerSample);
/* data chunk */
writeId(out, 'data');
writeInt32(out, mNumBytes);
return headerLength;
}