src/share/classes/javax/sound/sampled/AudioInputStream.java

Print this page


   1 /*
   2  * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 176 
 177     /**
 178      * Obtains the length of the stream, expressed in sample frames rather than bytes.
 179      * @return the length in sample frames
 180      */
 181     public long getFrameLength() {
 182         return frameLength;
 183     }
 184 
 185 
 186     /**
 187      * Reads the next byte of data from the audio input stream.  The audio input
 188      * stream's frame size must be one byte, or an <code>IOException</code>
 189      * will be thrown.
 190      *
 191      * @return the next byte of data, or -1 if the end of the stream is reached
 192      * @throws IOException if an input or output error occurs
 193      * @see #read(byte[], int, int)
 194      * @see #read(byte[])
 195      * @see #available
 196      * <p>
 197      */
 198     public int read() throws IOException {
 199         if( frameSize != 1 ) {
 200             throw new IOException("cannot read a single byte if frame size > 1");
 201         }
 202 
 203         byte[] data = new byte[1];
 204         int temp = read(data);
 205         if (temp <= 0) {
 206             // we have a weird situation if read(byte[]) returns 0!
 207             return -1;
 208         }
 209         return data[0] & 0xFF;
 210     }
 211 
 212 
 213     /**
 214      * Reads some number of bytes from the audio input stream and stores them into
 215      * the buffer array <code>b</code>. The number of bytes actually read is
 216      * returned as an integer. This method blocks until input data is


   1 /*
   2  * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 176 
 177     /**
 178      * Obtains the length of the stream, expressed in sample frames rather than bytes.
 179      * @return the length in sample frames
 180      */
 181     public long getFrameLength() {
 182         return frameLength;
 183     }
 184 
 185 
 186     /**
 187      * Reads the next byte of data from the audio input stream.  The audio input
 188      * stream's frame size must be one byte, or an <code>IOException</code>
 189      * will be thrown.
 190      *
 191      * @return the next byte of data, or -1 if the end of the stream is reached
 192      * @throws IOException if an input or output error occurs
 193      * @see #read(byte[], int, int)
 194      * @see #read(byte[])
 195      * @see #available

 196      */
 197     public int read() throws IOException {
 198         if( frameSize != 1 ) {
 199             throw new IOException("cannot read a single byte if frame size > 1");
 200         }
 201 
 202         byte[] data = new byte[1];
 203         int temp = read(data);
 204         if (temp <= 0) {
 205             // we have a weird situation if read(byte[]) returns 0!
 206             return -1;
 207         }
 208         return data[0] & 0xFF;
 209     }
 210 
 211 
 212     /**
 213      * Reads some number of bytes from the audio input stream and stores them into
 214      * the buffer array <code>b</code>. The number of bytes actually read is
 215      * returned as an integer. This method blocks until input data is