< prev index next >

src/java.desktop/share/classes/com/sun/media/sound/WaveFloatFileWriter.java

Print this page




  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         }


< prev index next >