JavaTM 2 Platform
Standard Ed. 6

javax.sound.sampled
類別 AudioInputStream

java.lang.Object
  繼承者 java.io.InputStream
      繼承者 javax.sound.sampled.AudioInputStream
所有已實作的介面:
Closeable

public class AudioInputStream
extends InputStream

音頻輸入串流是具有指定音頻格式和長度的輸入串流。長度用範例幀表示,不用位元組表示。提供幾種方法,用於從串流讀取一定數量的位元組,或未指定數量的位元組。音頻輸入串流追蹤所讀取的最後一個位元組。可以跳過任意數量的位元組以到達稍後的讀取位置。音頻輸入串流可支持標記。設置標記時,會記住當前位置,以便可以稍後返回到該位置。

AudioSystem 類別包括許多操作 AudioInputStream 物件的方法。例如,這些方法可以讓您:

從以下版本開始:
1.3
另請參見:
AudioSystem, Clip.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()
          測試此音頻輸入串流是否支持 markreset 方法。
 int read()
          從音頻輸入串流讀取資料下一個位元組。
 int read(byte[] b)
          從音頻輸入串流讀取一定數量的位元組,並將其存儲在緩衝區陣列 b 中。
 int read(byte[] b, int off, int len)
          從音頻串流讀取指定的最大數量的資料位元組,並將其放入給定的位元組陣列中。
 void reset()
          將此音頻輸入串流重新定位到上一次調用其 mark 方法時的位置。
 long skip(long n)
          跳過並丟棄此音頻輸入串流中指定數量的位元組。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

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
從音頻輸入串流讀取資料下一個位元組。音頻輸入串流的幀大小必須是一個位元組,否則將拋出 IOException

指定者:
類別 InputStream 中的 read
返回:
資料的下一個位元組;如果已到達串流的末尾,則返回 -1
拋出:
IOException - 如果發生輸入或輸出錯誤
另請參見:
read(byte[], int, int), read(byte[]),


read

public int read(byte[] b)
         throws IOException
從音頻輸入串流讀取一定數量的位元組,並將其存儲在緩衝區陣列 b 中。以整數形式返回實際讀取的位元組數。在輸入資料可用、檢測到串流末尾或拋出異常之前,此方法將一直阻塞。

此方法將總是讀取整數幀。如果陣列的長度不是整數幀,則讀取最大數量的 b.length - (b.length % frameSize) 位元組。

覆寫:
類別 InputStream 中的 read
參數:
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) 位元組。

覆寫:
類別 InputStream 中的 read
參數:
b - 將資料讀入的緩衝區
off - 從陣列 b 的開頭開始的偏移量,將從此處寫入資料
len - 要讀取的最大數量的位元組
返回:
讀入緩衝區的總位元組數;如果因已到達串流末尾而不再有更多資料,則返回 -1
拋出:
IOException - 如果發生輸入或輸出錯誤
另請參見:
read(byte[]), read(), skip(long), available()

skip

public long skip(long n)
          throws IOException
跳過並丟棄此音頻輸入串流中指定數量的位元組。

覆寫:
類別 InputStream 中的 skip
參數:
n - 要跳過的請求數量的位元組
返回:
跳過的實際位元組數
拋出:
IOException - 如果發生輸入或輸出錯誤
另請參見:
read(), available()

available

public int available()
              throws IOException
返回可不受阻塞地從此音頻輸入串流中讀取(或跳過)的最大位元組數。此限制只應用於對此音頻輸入串流的 readskip 方法的下一個調用;每次調用這些方法時該限制都可以有所不同。如果關閉此串流,則可能拋出 IOException,這一點取決於基礎串流。

覆寫:
類別 InputStream 中的 available
返回:
可以不受阻塞地從此音頻輸入串流中讀取的位元組數
拋出:
IOException - 如果發生輸入或輸出錯誤
另請參見:
read(byte[], int, int), read(byte[]), read(), skip(long)

close

public void close()
           throws IOException
關閉此音頻輸入串流並釋放與該串流關聯的所有系統資源。

指定者:
介面 Closeable 中的 close
覆寫:
類別 InputStream 中的 close
拋出:
IOException - 如果發生輸入或輸出錯誤

mark

public void mark(int readlimit)
標記此音頻輸入串流中的當前位置。

覆寫:
類別 InputStream 中的 mark
參數:
readlimit - 在標記位置變得無效之前可以讀取的最大位元組數。
另請參見:
reset(), markSupported()

reset

public void reset()
           throws IOException
將此音頻輸入串流重新定位到上一次調用其 mark 方法時的位置。

覆寫:
類別 InputStream 中的 reset
拋出:
IOException - 如果發生輸入或輸出錯誤。
另請參見:
mark(int), markSupported()

markSupported

public boolean markSupported()
測試此音頻輸入串流是否支持 markreset 方法。

覆寫:
類別 InputStream 中的 markSupported
返回:
如果此串流支持 markreset 方法,則返回 true;否則返回 false
另請參見:
mark(int), reset()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only