72
73 RIFFWriter fmt_chunk = writer.writeChunk("fmt ");
74
75 AudioFormat format = stream.getFormat();
76 fmt_chunk.writeUnsignedShort(3); // WAVE_FORMAT_IEEE_FLOAT
77 fmt_chunk.writeUnsignedShort(format.getChannels());
78 fmt_chunk.writeUnsignedInt((int) format.getSampleRate());
79 fmt_chunk.writeUnsignedInt(((int) format.getFrameRate())
80 * format.getFrameSize());
81 fmt_chunk.writeUnsignedShort(format.getFrameSize());
82 fmt_chunk.writeUnsignedShort(format.getSampleSizeInBits());
83 fmt_chunk.close();
84 RIFFWriter data_chunk = writer.writeChunk("data");
85 byte[] buff = new byte[1024];
86 int len;
87 while ((len = stream.read(buff, 0, buff.length)) != -1)
88 data_chunk.write(buff, 0, len);
89 data_chunk.close();
90 }
91
92 private static class NoCloseOutputStream extends OutputStream {
93 final OutputStream out;
94
95 NoCloseOutputStream(OutputStream out) {
96 this.out = out;
97 }
98
99 @Override
100 public void write(int b) throws IOException {
101 out.write(b);
102 }
103
104 @Override
105 public void flush() throws IOException {
106 out.flush();
107 }
108
109 @Override
110 public void write(byte[] b, int off, int len) throws IOException {
111 out.write(b, off, len);
112 }
|
72
73 RIFFWriter fmt_chunk = writer.writeChunk("fmt ");
74
75 AudioFormat format = stream.getFormat();
76 fmt_chunk.writeUnsignedShort(3); // WAVE_FORMAT_IEEE_FLOAT
77 fmt_chunk.writeUnsignedShort(format.getChannels());
78 fmt_chunk.writeUnsignedInt((int) format.getSampleRate());
79 fmt_chunk.writeUnsignedInt(((int) format.getFrameRate())
80 * format.getFrameSize());
81 fmt_chunk.writeUnsignedShort(format.getFrameSize());
82 fmt_chunk.writeUnsignedShort(format.getSampleSizeInBits());
83 fmt_chunk.close();
84 RIFFWriter data_chunk = writer.writeChunk("data");
85 byte[] buff = new byte[1024];
86 int len;
87 while ((len = stream.read(buff, 0, buff.length)) != -1)
88 data_chunk.write(buff, 0, len);
89 data_chunk.close();
90 }
91
92 private static final class NoCloseOutputStream extends OutputStream {
93 final OutputStream out;
94
95 NoCloseOutputStream(OutputStream out) {
96 this.out = out;
97 }
98
99 @Override
100 public void write(int b) throws IOException {
101 out.write(b);
102 }
103
104 @Override
105 public void flush() throws IOException {
106 out.flush();
107 }
108
109 @Override
110 public void write(byte[] b, int off, int len) throws IOException {
111 out.write(b, off, len);
112 }
|