モジュール java.desktop
パッケージ javax.sound.sampled

クラスAudioInputStream

  • すべての実装されたインタフェース:
    Closeable, AutoCloseable

    public class AudioInputStream
    extends InputStream
    オーディオ入力ストリームは、オーディオの形式および長さが指定されている入力ストリームです。 長さはバイト数ではなくサンプル・フレーム数で表します。 いくつかのメソッドを使用して、ストリームから指定したバイト数、あるいは未指定のバイト数を読み込むことができます。 オーディオ入力ストリームは、読み込まれた最終バイトを記録します。 任意のバイト数をスキップし、後ろの位置へ移動して読み込むことができます。 オーディオ入力ストリームは、マークをサポートします。 マークを設定すると現在の位置が記憶され、あとでその位置に戻ることができます。

    AudioSystemクラスには、AudioInputStreamオブジェクトを操作する多くのメソッドがあります。 たとえば、メソッドを使用すると次の操作を実行できます。

    • 外部のオーディオ・ファイル、ストリーム、またはURLからオーディオ入力ストリームを取得
    • オーディオ入力ストリームから外部ファイルを書き出します。
    • オーディオ入力ストリームを別のオーディオ形式に変換します。

    導入されたバージョン:
    1.3
    関連項目:
    AudioSystemClip.open(AudioInputStream)
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      protected AudioFormat format
      ストリームに含まれるオーディオ・データの形式です。
      protected long frameLength
      ストリームの長さ(サンプル・フレーム単位)です。
      protected long framePos
      このストリームの現在の位置、サンプル・フレーム単位(ゼロから始まる)です。
      protected int frameSize
      各フレームのサイズ(バイト単位)です。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      AudioInputStream​(InputStream stream, AudioFormat format, long length)
      指定された入力ストリームからのオーディオ・データを使用して、要求された形式およびサンプル・フレーム数で表される長さをもつオーディオ入力ストリームを構築します。
      AudioInputStream​(TargetDataLine line)
      指定されたターゲット・データ・ラインからデータを読み込むオーディオ入力ストリームを構築します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      int available()
      このオーディオ入力ストリームから、ブロックされることなく読込みできる(またはスキップできる)最大バイト数を返します。
      void close()
      このオーディオ入力ストリームを閉じて、そのストリームに関連付けられたすべてのシステム・リソースを解放します。
      AudioFormat getFormat()
      オーディオ入力ストリーム内のサウンド・データのオーディオ形式を取得します。
      long getFrameLength()
      バイト数ではなくサンプル・フレーム数で表される、ストリームの長さを取得します。
      void mark​(int readlimit)
      このオーディオ入力ストリームの現在の位置にマークを設定します。
      boolean markSupported()
      このオーディオ入力ストリームが、markメソッドとresetメソッドをサポートしているかどうかを判定します。
      int read()
      オーディオ入力ストリームからデータの次のバイトを読み込みます。
      int read​(byte[] b)
      オーディオ入力ストリームから数バイトを読み込み、それをバッファ配列bに格納します。
      int read​(byte[] b, int off, int len)
      オーディオ・ストリームから指定されたデータの最大バイト数まで読み込み、読み込んだバイトを指定されたバイト配列に格納します。
      void reset()
      このオーディオ入力ストリームの位置を、入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再設定します。
      long skip​(long n)
      指定したバイト数を、このオーディオ入力ストリームからスキップおよび破棄します。
    • フィールドの詳細

      • format

        protected AudioFormat format
        ストリームに含まれるオーディオ・データの形式です。
      • frameLength

        protected long frameLength
        ストリームの長さ(サンプル・フレーム単位)です。
      • frameSize

        protected int frameSize
        各フレームのサイズ(バイト単位)です。
      • framePos

        protected long framePos
        このストリームの現在の位置、サンプル・フレーム単位(ゼロから始まる)です。
    • コンストラクタの詳細

      • AudioInputStream

        public AudioInputStream​(InputStream stream,
                                AudioFormat format,
                                long length)
        指定された入力ストリームからのオーディオ・データを使用して、要求された形式およびサンプル・フレーム数で表される長さをもつオーディオ入力ストリームを構築します。
        パラメータ:
        stream - このAudioInputStreamオブジェクトの基となるストリーム
        format - このストリームのオーディオ・データの形式
        length - サンプル・フレーム数で表されるこのストリーム内のデータの長さ
      • AudioInputStream

        public AudioInputStream​(TargetDataLine line)
        指定されたターゲット・データ・ラインからデータを読み込むオーディオ入力ストリームを構築します。 ストリームのフォーマットはターゲット・データ・ラインのフォーマットと同じであり、長さはAudioSystem#NOT_SPECIFIEDです。
        パラメータ:
        line - このストリームがデータを取得するターゲット・データ・ライン
        関連項目:
        AudioSystem.NOT_SPECIFIED
    • メソッドの詳細

      • getFormat

        public AudioFormat getFormat()
        オーディオ入力ストリーム内のサウンド・データのオーディオ形式を取得します。
        戻り値:
        このストリームの形式を記述するオーディオ形式オブジェクト
      • getFrameLength

        public long getFrameLength()
        バイト数ではなくサンプル・フレーム数で表される、ストリームの長さを取得します。
        戻り値:
        サンプル・フレーム数で表される長さ
      • read

        public int read()
                 throws IOException
        オーディオ入力ストリームからデータの次のバイトを読み込みます。 オーディオ入力ストリームのフレーム・サイズは、1バイトにする必要があります。そうでない場合は、IOExceptionがスローされます。
        定義:
        read、クラスInputStream
        戻り値:
        データの次のバイト、またはストリームの終わりに達した場合は -1
        例外:
        IOException - 入出力エラーが発生した場合
        関連項目:
        read(byte[], int, int), read(byte[]), available()
      • read

        public int read​(byte[] b)
                 throws IOException
        オーディオ入力ストリームから数バイトを読み込み、それをバッファ配列bに格納します。 実際に読み込まれたバイト数は整数として返されます。 入力データが読み込めるようになるか、ストリームの終わりが検出されるか、または例外が発生するまで、このメソッドはブロックされます。

        このメソッドは常にフレームの整数値を読み込みます。 配列の長さがフレームの整数値になっていない場合は、最大でb.length - (b.length % frameSize)バイトを読み込みます。

        オーバーライド:
        read、クラスInputStream
        パラメータ:
        b - データの読込み先のバッファ
        戻り値:
        バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
        例外:
        IOException - 入出力エラーが発生した場合
        関連項目:
        read(byte[], int, int), read(), available()
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws IOException
        オーディオ・ストリームから指定されたデータの最大バイト数まで読み込み、読み込んだバイトを指定されたバイト配列に格納します。

        このメソッドは常にフレームの整数値を読み込みます。 lenがフレームの整数値になっていない場合は、最大でlen - (len % frameSize)バイトを読み込みます。

        オーバーライド:
        read、クラスInputStream
        パラメータ:
        b - データの読込み先のバッファ
        off - データが書き込まれる、配列bの先頭からのオフセット
        len - 読み込む最大バイト数
        戻り値:
        バッファに読み込まれたバイトの合計数。ストリームの終わりに達してデータがない場合は -1
        例外:
        IOException - 入出力エラーが発生した場合
        関連項目:
        read(byte[]), read(), skip(long), available()
      • skip

        public long skip​(long n)
                  throws IOException
        指定したバイト数を、このオーディオ入力ストリームからスキップおよび破棄します。

        このメソッドは、常に整数のフレーム数をスキップします。 nが整数のフレーム数を指定しない場合、最大n - (n % frameSize)バイトはスキップされます。

        オーバーライド:
        skip、クラスInputStream
        パラメータ:
        n - スキップを要求されたバイト数
        戻り値:
        実際にスキップされたバイト数
        例外:
        IOException - 入出力エラーが発生した場合
        関連項目:
        read(), available()
      • available

        public int available()
                      throws IOException
        このオーディオ入力ストリームから、ブロックされることなく読込みできる(またはスキップできる)最大バイト数を返します。 この制限は、このオーディオ入力ストリームのreadまたはskipメソッドを次に呼び出したときにかぎり適用されます。制限はこれらのメソッドを呼び出すたびに変えることができます。 基本ストリームに応じて、このストリームが閉じられている場合はIOExceptionがスローされることがあります。
        オーバーライド:
        available、クラスInputStream
        戻り値:
        ブロックされずに入力ストリームから読み込むことができるバイト数
        例外:
        IOException - 入出力エラーが発生した場合
        関連項目:
        read(byte[], int, int), read(byte[]), read(), skip(long)
      • close

        public void close()
                   throws IOException
        このオーディオ入力ストリームを閉じて、そのストリームに関連付けられたすべてのシステム・リソースを解放します。
        定義:
        close、インタフェースAutoCloseable
        定義:
        close、インタフェースCloseable
        オーバーライド:
        close、クラスInputStream
        例外:
        IOException - 入出力エラーが発生した場合
      • mark

        public void mark​(int readlimit)
        このオーディオ入力ストリームの現在の位置にマークを設定します。
        オーバーライド:
        mark、クラスInputStream
        パラメータ:
        readlimit - マークされた位置が無効になる前に読込み可能な最大バイト数
        関連項目:
        reset(), markSupported()
      • reset

        public void reset()
                   throws IOException
        このオーディオ入力ストリームの位置を、入力ストリームで最後にmarkメソッドが呼び出されたときの位置に再設定します。
        オーバーライド:
        reset、クラスInputStream
        例外:
        IOException - 入出力エラーが発生した場合
        関連項目:
        mark(int), markSupported()
      • markSupported

        public boolean markSupported()
        このオーディオ入力ストリームが、markメソッドとresetメソッドをサポートしているかどうかを判定します。
        オーバーライド:
        markSupported、クラスInputStream
        戻り値:
        このストリームがmarkメソッドとresetメソッドをサポートしている場合はtrue、そうでない場合はfalse
        関連項目:
        mark(int), reset()