packagecom.test.shell;importjava.io.ByteArrayOutputStream;importjava.io.IOException;public classWaveHeader {public final char fileID[] = {'R', 'I', 'F', 'F'};public intfileLength;public char wavTag[] = {'W', 'A', 'V', 'E'};;public char FmtHdrID[] = {'f', 'm', 't', ' '};public intFmtHdrLeth;public shortFormatTag;public shortChannels;public intSamplesPerSec;public intAvgBytesPerSec;public shortBlockAlign;public shortBitsPerSample;public char DataHdrID[] = {'d','a','t','a'};public intDataHdrLeth;public byte[] getHeader() throwsIOException {
ByteArrayOutputStream bos= newByteArrayOutputStream();
WriteChar(bos, fileID);
WriteInt(bos, fileLength);
WriteChar(bos, wavTag);
WriteChar(bos, FmtHdrID);
WriteInt(bos,FmtHdrLeth);
WriteShort(bos,FormatTag);
WriteShort(bos,Channels);
WriteInt(bos,SamplesPerSec);
WriteInt(bos,AvgBytesPerSec);
WriteShort(bos,BlockAlign);
WriteShort(bos,BitsPerSample);
WriteChar(bos,DataHdrID);
WriteInt(bos,DataHdrLeth);
bos.flush();byte[] r =bos.toByteArray();
bos.close();returnr;
}private void WriteShort(ByteArrayOutputStream bos, int s) throwsIOException {byte[] mybyte = new byte[2];
mybyte[1] =(byte)( (s << 16) >> 24);
mybyte[0] =(byte)( (s << 24) >> 24);
bos.write(mybyte);
}private void WriteInt(ByteArrayOutputStream bos, int n) throwsIOException {byte[] buf = new byte[4];
buf[3] =(byte)( n >> 24);
buf[2] =(byte)( (n << 8) >> 24);
buf[1] =(byte)( (n << 16) >> 24);
buf[0] =(byte)( (n << 24) >> 24);
bos.write(buf);
}private void WriteChar(ByteArrayOutputStream bos, char[] id) {for (int i=0; i
bos.write(c);
}
}
}