write
write method
Write a WAVE file header.
@param out {@link java.io.OutputStream} to receive the header. @return number of bytes written. @throws IOException
Implementation
int write(EventSink<List<int>> out) {
/* RIFF header */
writeId(out, 'RIFF'); // Chunk ID
writeInt(out, 36 + mNumBytes); // Chunk Body Size
writeId(out, 'WAVE'); // RIFF Form Type
/* fmt chunk */
writeId(out, 'fmt ');
writeInt(out,
16); // Size of the rest of the Subchunk which follows this number. // 18???
writeint(out, mFormat);
writeint(out, mNumChannels);
writeInt(out, mSampleRate);
writeInt(
out,
(mNumChannels * mSampleRate * mBitsPerSample / 8)
.floor()); // Average Bytes per second
writeint(out,
(mNumChannels * mBitsPerSample / 8).floor()); // BlocK Align in bytes
writeint(out, mBitsPerSample);
/* data chunk */
writeId(out, 'data');
writeInt(out, mNumBytes);
return headerLength;
}