JavaTM 2 Platform
Standard Ed. 6

javax.sound.sampled
類別 AudioSystem

java.lang.Object
  繼承者 javax.sound.sampled.AudioSystem

public class AudioSystem
extends Object

AudioSystem 類別充當取樣音頻系統資源的入口點。此類別允許查詢和存取安裝在系統上的混頻器。AudioSystem 套件括許多在不同格式間轉換音頻資料的方法,以及在音頻檔案和串流之間進行轉換的方法。它還提供不用顯式處理混頻器即可直接從 AudioSystem 獲得 Line 的方法。

屬性可用於指定特定行型別的預設混頻器。系統屬性和屬性檔案都要考慮。在 Sun 參考實作中,屬性檔案是 JRE 目錄中的 "lib/sound.properties"。如果存在作為系統屬性的屬性並且存在於屬性檔案中,則優先使用系統屬性。如果未指定任何屬性,則在可用的設備中選擇適當的預設值。屬性檔案的語法在 Properties.load 中指定。下表列出了可用的屬性鍵和獲得它們的方法:

屬性鍵 介面 起作用的方法
javax.sound.sampled.Clip Clip getLine(javax.sound.sampled.Line.Info), getClip()
javax.sound.sampled.Port Port getLine(javax.sound.sampled.Line.Info)
javax.sound.sampled.SourceDataLine SourceDataLine getLine(javax.sound.sampled.Line.Info), getSourceDataLine(javax.sound.sampled.AudioFormat)
javax.sound.sampled.TargetDataLine TargetDataLine getLine(javax.sound.sampled.Line.Info), getTargetDataLine(javax.sound.sampled.AudioFormat)
屬性值由提供者類別名稱和混頻器名稱組成,通過雜湊標記 ("#") 進行分隔。提供者類別名稱是具體 mixer provider 類別的完全限定名。混頻器名稱是與由 Mixer.InfogetName 方法返回的 String 比對。可以省略類別名稱或混頻器名稱。如果只指定類別名稱,則尾部雜湊標記是可選的。

如果指定了提供者類別,並且可以從已安裝的提供者成功地檢索到它,則可從該提供者檢索 Mixer.Info 物件的列表。否則,當這些混頻器不提供後續比對時,從套件含所有可用 Mixer.Info 物件的 getMixerInfo() 中檢索列表。

如果指定了混頻器名稱,則搜尋所產生的 Mixer.Info 物件的列表:返回第一個具有比對名稱且其 Mixer 提供相應行介面的物件。如果未找到比對的 Mixer.Info 物件,或未指定混頻器名稱,則返回得到的列表中提供相應行介面的第一個混頻器。 例如,在調用 getLine 請求 Clip 實例時,值為 "com.sun.media.sound.MixerProvider#SunClip" 的屬性 javax.sound.sampled.Clip 將具有以下結果:如果在已安裝的混頻器提供者列表中存在類別 com.sun.media.sound.MixerProvider,則返回第一個具有名稱 "SunClip" 的混頻器中的第一個 Clip。如果無法找到,則返回指定提供者的第一個混頻器中的第一個 Clip,不管名稱如何。如果不存在,則返回所有混頻器(由 getMixerInfo 返回)列表中具有名稱 "SunClip" 的第一個 Mixer 中的第一個 Clip;或者,如果這個也找不到,則返回可以從所有混頻器列表中找到的第一個 Mixer 的第一個 Clip。如果還是失敗,則拋出 IllegalArgumentException

從以下版本開始:
1.3
另請參見:
AudioFormat, AudioInputStream, Mixer, Line, Line.Info

欄位摘要
static int NOT_SPECIFIED
          代表未知數字值的整數。
 
方法摘要
static AudioFileFormat getAudioFileFormat(File file)
          獲得指定 File 的音頻檔案格式。
static AudioFileFormat getAudioFileFormat(InputStream stream)
          獲得提供的音頻輸入串流的音頻檔案格式。
static AudioFileFormat getAudioFileFormat(URL url)
          獲得指定 URL 的音頻檔案格式。
static AudioFileFormat.Type[] getAudioFileTypes()
          獲得由系統為其提供檔案寫入支持的檔案型別。
static AudioFileFormat.Type[] getAudioFileTypes(AudioInputStream stream)
          獲得系統可從指定音頻輸入串流寫入的檔案型別。
static AudioInputStream getAudioInputStream(AudioFormat.Encoding targetEncoding, AudioInputStream sourceStream)
          通過轉換提供的音頻輸入串流,獲得所指示編碼的音頻輸入串流。
static AudioInputStream getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream)
          通過轉換提供的音頻輸入串流,獲得所指示格式的音頻輸入串流。
static AudioInputStream getAudioInputStream(File file)
          從提供的 File 獲得音頻輸入串流。
static AudioInputStream getAudioInputStream(InputStream stream)
          從提供的輸入串流獲得音頻輸入串流。
static AudioInputStream getAudioInputStream(URL url)
          從提供的 URL 獲得音頻輸入串流。
static Clip getClip()
          獲得可用於回放音頻檔案或音頻串流的剪輯。
static Clip getClip(Mixer.Info mixerInfo)
          從指定混頻器獲得可用於回放音頻檔案或音頻串流的剪輯。
static Line getLine(Line.Info info)
          獲得與指定 Line.Info 物件中的描述比對的行。
static Mixer getMixer(Mixer.Info info)
          獲得請求的音頻混頻器。
static Mixer.Info[] getMixerInfo()
          獲得混頻器資訊物件的陣列,該陣列表示當前安裝在系統上的音頻混頻器的集合。
static SourceDataLine getSourceDataLine(AudioFormat format)
          獲得一個源資料行,該行可用於以 AudioFormat 物件指定的格式回放音頻資料。
static SourceDataLine getSourceDataLine(AudioFormat format, Mixer.Info mixerinfo)
          獲得一個源資料行,該行可用於以 AudioFormat 物件(通過由 Mixer.Info 物件指定的混頻器提供)指定的格式回放音頻資料。
static Line.Info[] getSourceLineInfo(Line.Info info)
          獲得關於已安裝混頻器所支持特定型別的全部源行的資訊。
static TargetDataLine getTargetDataLine(AudioFormat format)
          獲得一個目標資料行,該行可用於以 AudioFormat 物件指定的格式記錄音頻資料。
static TargetDataLine getTargetDataLine(AudioFormat format, Mixer.Info mixerinfo)
          獲得一個目標資料行,該可用於以 AudioFormat 物件(該物件通過由 Mixer.Info 物件指定的混頻器提供)指定的格式記錄音頻資料。
static AudioFormat.Encoding[] getTargetEncodings(AudioFormat.Encoding sourceEncoding)
          使用已安裝的格式轉換器集合獲得系統可以從具有指定編碼的音頻輸入串流中獲得的編碼。
static AudioFormat.Encoding[] getTargetEncodings(AudioFormat sourceFormat)
          使用已安裝的格式轉換器集合,獲得系統可以從具有指定格式的音頻輸入串流中獲得的編碼。
static AudioFormat[] getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
          使用已安裝的格式轉換器,獲得具有特定編碼的格式,以及系統可以從指定格式的串流中獲得的格式。
static Line.Info[] getTargetLineInfo(Line.Info info)
          獲得關於已安裝混頻器所支持特定型別的全部目標行的資訊。
static boolean isConversionSupported(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
          指示是否可以從具有指定格式的音頻輸入串流獲得指定編碼的音頻輸入串流。
static boolean isConversionSupported(AudioFormat targetFormat, AudioFormat sourceFormat)
          指示是否可從另一指定格式的音頻輸入串流獲得指定格式的音頻輸入串流。
static boolean isFileTypeSupported(AudioFileFormat.Type fileType)
          指示系統是否提供指定檔案型別的檔案寫入支持。
static boolean isFileTypeSupported(AudioFileFormat.Type fileType, AudioInputStream stream)
          指示是否可以從指示的音頻輸入串流寫入指定檔案型別的音頻檔案。
static boolean isLineSupported(Line.Info info)
          指示系統是否支持與指定 Line.Info 物件比對的行。
static int write(AudioInputStream stream, AudioFileFormat.Type fileType, File out)
          將表示指定檔案型別的音頻檔案的位元組串流寫入所提供的外部檔案。
static int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out)
          將表示指定檔案型別的音頻檔案的位元組串流寫入所提供的輸出串流。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

NOT_SPECIFIED

public static final int NOT_SPECIFIED
代表未知數字值的整數。此值只適用於通常不採用負值的有符號的量。範例包括檔案大小、幀大小、緩衝區大小和樣本速率。許多 Java Sound 建構子接受這些參數的 NOT_SPECIFIED 值。據文檔記錄,其他方法可能也接受或返回此值。

另請參見:
常數欄位值
方法詳細資訊

getMixerInfo

public static Mixer.Info[] getMixerInfo()
獲得混頻器資訊物件的陣列,該陣列表示當前安裝在系統上的音頻混頻器的集合。

返回:
當前安裝的混頻器的資訊物件的陣列。如果系統上沒有混頻器可用,則返回長度為 0 的陣列。
另請參見:
getMixer(javax.sound.sampled.Mixer.Info)

getMixer

public static Mixer getMixer(Mixer.Info info)
獲得請求的音頻混頻器。

參數:
info - 表示所需混頻器的 Mixer.Info 物件,或者為 null,表示系統預設混頻器
返回:
請求的混頻器
拋出:
SecurityException - 如果因為安全限制請求的混頻器不可用
IllegalArgumentException - 如果資訊物件不表示安裝在系統上的混頻器
另請參見:
getMixerInfo()

getSourceLineInfo

public static Line.Info[] getSourceLineInfo(Line.Info info)
獲得關於已安裝混頻器所支持特定型別的全部源行的資訊。

參數:
info - 指定請求其資訊的行種類別的 Line.Info 物件
返回:
Line.Info 物件的陣列,這些物件描述與請求的型別比對的源行。如果所有的比對源行都不受支持,則返回長度為 0 的陣列。
另請參見:
Mixer.getSourceLineInfo(Line.Info)

getTargetLineInfo

public static Line.Info[] getTargetLineInfo(Line.Info info)
獲得關於已安裝混頻器所支持特定型別的全部目標行的資訊。

參數:
info - 指定請求其資訊的行種類別的 Line.Info 物件
返回:
Line.Info 物件的陣列,這些物件描述與請求的型別比對的目標行。如果所有的比對目標行都不受支持,則返回長度為 0 的陣列。
另請參見:
Mixer.getTargetLineInfo(Line.Info)

isLineSupported

public static boolean isLineSupported(Line.Info info)
指示系統是否支持與指定 Line.Info 物件比對的行。如果所有已安裝的混頻器都支持行,則說明行受支持。

參數:
info - 描述查詢其支持的行的 Line.Info 物件
返回:
如果至少支持一個比對行,則返回 true;否則返回 false
另請參見:
Mixer.isLineSupported(Line.Info)

getLine

public static Line getLine(Line.Info info)
                    throws LineUnavailableException
獲得與指定 Line.Info 物件中的描述比對的行。

如果請求 DataLine,且 infoDataLine.Info 的實例(至少指定一種完全限定的音頻格式),則上一個資料行將用作返回的 DataLine 的預設格式。

如果定義了系統屬性 javax.sound.sampled.Clipjavax.sound.sampled.Portjavax.sound.sampled.SourceDataLinejavax.sound.sampled.TargetDataLine,或在檔案 "sound.properties" 中定義它們,則使用它們檢索預設行。有關詳細資訊,請參閱類別描述。 如果未設置相應屬性,或尚未安裝屬性中請求的混頻器,或不提供請求的行,則在所有安裝的混頻器中查詢請求的行型別。從提供請求的行型別的第一個混頻器中返回行。

參數:
info - 描述所需種類別的行的 Line.Info 物件
返回:
請求的種類別的行
拋出:
LineUnavailableException - 如果由於資源限制比對行不可用
SecurityException - 如果由於安全限制比對行不可用
IllegalArgumentException - 如果系統不是通過所有安裝的混頻器至少支持一個比對 Line.Info 物件的行

getClip

public static Clip getClip()
                    throws LineUnavailableException
獲得可用於回放音頻檔案或音頻串流的剪輯。返回的剪輯將通過預設系統混頻器提供;如果不可能,則通過安裝在系統中的支持 Clip 物件的任何其他混頻器提供。

返回的剪輯必須用 open(AudioFormat)open(AudioInputStream) 方法打開。

這是在內部使用 getMixergetLine 的高層級方法。

如果定義了系統屬性 javax.sound.sampled.Clip,或在檔案 "sound.properties" 中定義了它,則使用它檢索預設剪輯。有關詳細資訊,請參閱類別描述

返回:
所需的剪輯物件
拋出:
LineUnavailableException - 如果由於資源限制剪輯物件不可用
SecurityException - 如果由於安全限制剪輯物件不可用
IllegalArgumentException - 如果不是通過所有安裝的混頻器至少支持一個剪輯實例
從以下版本開始:
1.5
另請參見:
getClip(Mixer.Info)

getClip

public static Clip getClip(Mixer.Info mixerInfo)
                    throws LineUnavailableException
從指定混頻器獲得可用於回放音頻檔案或音頻串流的剪輯。

返回的剪輯必須用 open(AudioFormat)open(AudioInputStream) 方法打開。

這是在內部使用 getMixergetLine 的高層級方法。

參數:
mixerInfo - 表示所需混頻器的 Mixer.Info 物件,或者為 null,表示系統預設混頻器
返回:
指定混頻器中的剪輯物件
拋出:
LineUnavailableException - 如果由於資源限制此混頻器不提供剪輯
SecurityException - 如果由於安全限制此混頻器不提供剪輯
IllegalArgumentException - 如果系統不是通過所有安裝的混頻器至少支持一個剪輯
從以下版本開始:
1.5
另請參見:
getClip()

getSourceDataLine

public static SourceDataLine getSourceDataLine(AudioFormat format)
                                        throws LineUnavailableException
獲得一個源資料行,該行可用於以 AudioFormat 物件指定的格式回放音頻資料。返回的行將通過預設系統混頻器提供,如果有可能,則通過安裝在系統中的支持比對 SourceDataLine 物件的任何其他混頻器提供。

返回的行應該用 open(AudioFormat)open(AudioFormat, int) 方法打開。

這是在內部使用 getMixergetLine 的高層級方法。

返回的 SourceDataLine 的預設音頻格式將使用 format 進行初始化。

如果定義了系統屬性 javax.sound.sampled.SourceDataLine,或在檔案 "sound.properties" 中定義了它,則使用它檢索預設的源資料行。有關詳細資訊,請參閱類別描述

參數:
format - 指定返回行的受支持格式的 AudioFormat 物件,或者為 null,表示任何音頻格式
返回:
所需的 SourceDataLine 物件
拋出:
LineUnavailableException - 如果由於資源限制比對的源資料行不可用
SecurityException - 如果由於安全限制比對的源資料行不可用
IllegalArgumentException - 如果系統不是通過所有安裝的混頻器至少支持一個支持指定音頻格式的源資料行
從以下版本開始:
1.5
另請參見:
getSourceDataLine(AudioFormat, Mixer.Info)

getSourceDataLine

public static SourceDataLine getSourceDataLine(AudioFormat format,
                                               Mixer.Info mixerinfo)
                                        throws LineUnavailableException
獲得一個源資料行,該行可用於以 AudioFormat 物件(通過由 Mixer.Info 物件指定的混頻器提供)指定的格式回放音頻資料。

返回的行應該用 open(AudioFormat)open(AudioFormat, int) 方法打開。

這是在內部使用 getMixergetLine 的高層級方法。

返回的 SourceDataLine 的預設音頻格式將使用 format 進行初始化。

參數:
format - 指定返回行的受支持音頻格式的 AudioFormat 物件,或者為 null,表示任何音頻格式
mixerinfo - 表示所需混頻器的 Mixer.Info 物件,或者為null,表示系統預設混頻器
返回:
所需的 SourceDataLine 物件
拋出:
LineUnavailableException - 如果由於資源限制指定混頻器中的比對源資料行不可用
SecurityException - 如果由於安全限制指定混頻器中的比對源資料行不可用
IllegalArgumentException - 如果指定的混頻器不至少支持一個支持指定音頻格式的源資料行
從以下版本開始:
1.5
另請參見:
getSourceDataLine(AudioFormat)

getTargetDataLine

public static TargetDataLine getTargetDataLine(AudioFormat format)
                                        throws LineUnavailableException
獲得一個目標資料行,該行可用於以 AudioFormat 物件指定的格式記錄音頻資料。返回的行將通過預設系統混頻器提供,如果有可能,則通過安裝在系統中的支持比對 TargetDataLine 物件的任何其他混頻器提供。

返回的行應該用 open(AudioFormat)open(AudioFormat, int) 方法打開。

這是在內部使用 getMixergetLine 的高層級方法。

返回的 TargetDataLine 的預設音頻格式將使用 format 進行初始化。

參數:
format - 指定返回行的受支持格式的 AudioFormat 物件,或者為 null,表示任何音頻格式
返回:
所需的 TargetDataLine 物件
拋出:
LineUnavailableException - 如果由於資源限制比對的目標資料行不可用
SecurityException - 如果由於安全限制比對的目標資料行不可用
IllegalArgumentException - 如果系統不是通過所有安裝的混頻器至少支持一個支持指定音頻格式的目標資料行
從以下版本開始:
1.5
另請參見:
getTargetDataLine(AudioFormat, Mixer.Info), AudioPermission

getTargetDataLine

public static TargetDataLine getTargetDataLine(AudioFormat format,
                                               Mixer.Info mixerinfo)
                                        throws LineUnavailableException
獲得一個目標資料行,該可用於以 AudioFormat 物件(該物件通過由 Mixer.Info 物件指定的混頻器提供)指定的格式記錄音頻資料。

返回的行應該用 open(AudioFormat)open(AudioFormat, int) 方法打開。

這是在內部使用 getMixergetLine 的高層級方法。

返回的 TargetDataLine 的預設音頻格式將使用 format 進行初始化。

如果定義了系統屬性 javax.sound.sampled.TargetDataLine,或在檔案 "sound.properties" 中定義了它,則使用它檢索預設的源資料行。有關詳細資訊,請參閱類別描述

參數:
format - 指定返回行的受支持音頻格式的 AudioFormat 物件,或者為 null,表示任何音頻格式
mixerinfo - 表示所需混頻器的 Mixer.Info 物件,或者為null,表示系統預設混頻器
返回:
所需的 TargetDataLine 物件
拋出:
LineUnavailableException - 如果由於資源限制指定混頻器中的比對目標資料行不可用
SecurityException - 如果由於安全限制指定混頻器中的比對目標資料行不可用
IllegalArgumentException - 如果指定的混頻器不至少支持一個支持指定音頻格式的目標資料行
從以下版本開始:
1.5
另請參見:
getTargetDataLine(AudioFormat), AudioPermission

getTargetEncodings

public static AudioFormat.Encoding[] getTargetEncodings(AudioFormat.Encoding sourceEncoding)
使用已安裝的格式轉換器集合獲得系統可以從具有指定編碼的音頻輸入串流中獲得的編碼。

參數:
sourceEncoding - 查詢其轉換支持的編碼
返回:
編碼的陣列。如果不支持 sourceEncoding,則返回長度為 0 的陣列。否則,陣列長度將至少為 1,表示 sourceEncoding(不轉換)。

getTargetEncodings

public static AudioFormat.Encoding[] getTargetEncodings(AudioFormat sourceFormat)
使用已安裝的格式轉換器集合,獲得系統可以從具有指定格式的音頻輸入串流中獲得的編碼。

參數:
sourceFormat - 查詢其轉換的音頻格式
返回:
編碼的陣列。如果不支持 sourceFormat,則返回長度為 0 的陣列。否則,陣列長度將至少為 1,表示 sourceFormat 的編碼(不轉換)。

isConversionSupported

public static boolean isConversionSupported(AudioFormat.Encoding targetEncoding,
                                            AudioFormat sourceFormat)
指示是否可以從具有指定格式的音頻輸入串流獲得指定編碼的音頻輸入串流。

參數:
targetEncoding - 轉換後所需的編碼
sourceFormat - 轉換前的音頻格式
返回:
如果支持轉換,則返回 true;否則返回 false

getAudioInputStream

public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targetEncoding,
                                                   AudioInputStream sourceStream)
通過轉換提供的音頻輸入串流,獲得所指示編碼的音頻輸入串流。

參數:
targetEncoding - 轉換後所需的編碼
sourceStream - 要轉換的串流
返回:
所指示編碼的音頻輸入串流
拋出:
IllegalArgumentException - 如果不支持轉換
另請參見:
getTargetEncodings(AudioFormat.Encoding), getTargetEncodings(AudioFormat), isConversionSupported(AudioFormat.Encoding, AudioFormat), getAudioInputStream(AudioFormat, AudioInputStream)

getTargetFormats

public static AudioFormat[] getTargetFormats(AudioFormat.Encoding targetEncoding,
                                             AudioFormat sourceFormat)
使用已安裝的格式轉換器,獲得具有特定編碼的格式,以及系統可以從指定格式的串流中獲得的格式。

參數:
targetEncoding - 轉換後所需的編碼
sourceFormat - 轉換前的音頻格式
返回:
格式的陣列。如果不支持任何指定編碼的格式,則返回長度為 0 的陣列。

isConversionSupported

public static boolean isConversionSupported(AudioFormat targetFormat,
                                            AudioFormat sourceFormat)
指示是否可從另一指定格式的音頻輸入串流獲得指定格式的音頻輸入串流。

參數:
targetFormat - 轉換後所需的音頻格式
sourceFormat - 轉換前的音頻格式
返回:
如果支持轉換,則返回 true;否則返回 false

getAudioInputStream

public static AudioInputStream getAudioInputStream(AudioFormat targetFormat,
                                                   AudioInputStream sourceStream)
通過轉換提供的音頻輸入串流,獲得所指示格式的音頻輸入串流。

參數:
targetFormat - 轉換後所需的音頻格式
sourceStream - 要轉換的串流
返回:
所指示格式的音頻輸入串流
拋出:
IllegalArgumentException - 如果不支持轉換
另請參見:
getTargetFormats(AudioFormat.Encoding, AudioFormat), isConversionSupported(AudioFormat, AudioFormat), getAudioInputStream(AudioFormat.Encoding, AudioInputStream)

getAudioFileFormat

public static AudioFileFormat getAudioFileFormat(InputStream stream)
                                          throws UnsupportedAudioFileException,
                                                 IOException
獲得提供的音頻輸入串流的音頻檔案格式。該串流必須指向有效的音頻檔案資料。此方法的實作可能需要多個解析器來檢查串流,以確定這些解析器是否支持它。這些解析器必須能夠標記串流,讀取足夠多的資料來確定它們是否支持串流,並且如果不支持,則將串流的閱讀指針重新設置到其初始位置。如果輸入串流不支持這些操作,則此方法可能會失敗,並拋出 IOException

參數:
stream - 應該從中提取檔案格式資訊的輸入串流
返回:
描述串流的音頻檔案格式的 AudioFileFormat 物件
拋出:
UnsupportedAudioFileException - 如果串流不指向系統識別的有效音頻檔案資料
IOException - 如果發生輸入/輸出異常
另請參見:
InputStream.markSupported(), InputStream.mark(int)

getAudioFileFormat

public static AudioFileFormat getAudioFileFormat(URL url)
                                          throws UnsupportedAudioFileException,
                                                 IOException
獲得指定 URL 的音頻檔案格式。該 URL 必須指向有效的音頻檔案資料。

參數:
url - 應該從中提取檔案格式資訊的 URL
返回:
描述音頻檔案格式的 AudioFileFormat 物件
拋出:
UnsupportedAudioFileException - 如果該 URL 不指向系統識別的有效音頻檔案資料
IOException - 如果發生輸入/輸出異常

getAudioFileFormat

public static AudioFileFormat getAudioFileFormat(File file)
                                          throws UnsupportedAudioFileException,
                                                 IOException
獲得指定 File 的音頻檔案格式。該 File 必須指向有效的音頻檔案資料。

參數:
file - 應該從中提取檔案格式資訊的 File
返回:
描述音頻檔案格式的 AudioFileFormat 物件
拋出:
UnsupportedAudioFileException - 如果 File 不指向系統識別的有效檔案資料
IOException - 如果發生 I/O 異常

getAudioInputStream

public static AudioInputStream getAudioInputStream(InputStream stream)
                                            throws UnsupportedAudioFileException,
                                                   IOException
從提供的輸入串流獲得音頻輸入串流。該串流必須指向有效的音頻檔案資料。此方法的實作可能需要多個解析器來檢查串流,以確定這些解析器是否支持它。這些解析器必須能夠標記串流,讀取足夠多的資料來確定它們是否支持串流,並且如果不支持,則將串流的閱讀指針重新設置到其初始位置。如果輸入串流不支持這些操作,則此方法可能會失敗,並拋出 IOException

參數:
stream - 應該從中建構 AudioInputStream 的輸入串流
返回:
基於輸入串流中包含的音頻檔案資料的 AudioInputStream 物件。
拋出:
UnsupportedAudioFileException - 如果串流不指向系統識別的有效音頻檔案資料
IOException - 如果發生 I/O 異常
另請參見:
InputStream.markSupported(), InputStream.mark(int)

getAudioInputStream

public static AudioInputStream getAudioInputStream(URL url)
                                            throws UnsupportedAudioFileException,
                                                   IOException
從提供的 URL 獲得音頻輸入串流。該 URL 必須指向有效的音頻檔案資料。

參數:
url - 應該為其建構 AudioInputStream 的 URL
返回:
基於由 URL 指向的音頻檔案資料的 AudioInputStream 物件
拋出:
UnsupportedAudioFileException - 如果 URL 不指向系統識別的有效音頻檔案資料
IOException - 如果發生 I/O 異常

getAudioInputStream

public static AudioInputStream getAudioInputStream(File file)
                                            throws UnsupportedAudioFileException,
                                                   IOException
從提供的 File 獲得音頻輸入串流。該 File 必須指向有效的音頻檔案資料。

參數:
file - 應該為其建構 AudioInputStreamFile
返回:
基於由 File 指向的音頻檔案資料的 AudioInputStream 物件
拋出:
UnsupportedAudioFileException - 如果 File 不指向系統識別的有效音頻檔案資料
IOException - 如果發生 I/O 異常

getAudioFileTypes

public static AudioFileFormat.Type[] getAudioFileTypes()
獲得由系統為其提供檔案寫入支持的檔案型別。

返回:
唯一檔案型別的陣列。如果不支持任何檔案型別,則返回長度為 0 的陣列。

isFileTypeSupported

public static boolean isFileTypeSupported(AudioFileFormat.Type fileType)
指示系統是否提供指定檔案型別的檔案寫入支持。

參數:
fileType - 查詢其寫入功能的檔案型別
返回:
如果支持檔案型別,則返回 true;否則返回 false

getAudioFileTypes

public static AudioFileFormat.Type[] getAudioFileTypes(AudioInputStream stream)
獲得系統可從指定音頻輸入串流寫入的檔案型別。

參數:
stream - 查詢其音頻檔案型別支持的音頻輸入串流
返回:
檔案型別的陣列。如果不支持任何檔案型別,則返回長度為 0 的陣列。

isFileTypeSupported

public static boolean isFileTypeSupported(AudioFileFormat.Type fileType,
                                          AudioInputStream stream)
指示是否可以從指示的音頻輸入串流寫入指定檔案型別的音頻檔案。

參數:
fileType - 查詢其寫入功能的檔案型別
stream - 查詢其檔案寫入支持的串流
返回:
如果此音頻輸入串流支持檔案型別,則返回 true;否則返回 false

write

public static int write(AudioInputStream stream,
                        AudioFileFormat.Type fileType,
                        OutputStream out)
                 throws IOException
將表示指定檔案型別的音頻檔案的位元組串流寫入所提供的輸出串流。有些檔案型別需要將長度寫入檔案標題;此類別檔案不能從前往後寫入,除非預先知道長度。如果音頻檔案型別中的長度為 AudioSystem.NOT_SPECIFIED,則嘗試寫入此型別的檔案將失敗,並拋出 IOException。

參數:
stream - 套件含要寫入檔案的音頻資料的音頻輸入串流
fileType - 要寫入的音頻檔案的種類別
out - 應將檔案資料寫入其中的串流
返回:
寫入輸出串流的位元組數
拋出:
IOException - 如果發生輸入/輸出異常
IllegalArgumentException - 如果系統不支持檔案型別
另請參見:
isFileTypeSupported(javax.sound.sampled.AudioFileFormat.Type), getAudioFileTypes()

write

public static int write(AudioInputStream stream,
                        AudioFileFormat.Type fileType,
                        File out)
                 throws IOException
將表示指定檔案型別的音頻檔案的位元組串流寫入所提供的外部檔案。

參數:
stream - 套件含要寫入檔案的音頻資料的音頻輸入串流
fileType - 要寫入的音頻檔案的種類別
out - 應將檔案資料寫入其中的外部檔案
返回:
寫入檔案的位元組數
拋出:
IOException - 如果發生 I/O 錯誤
IllegalArgumentException - 如果系統不支持檔案型別
另請參見:
isFileTypeSupported(javax.sound.sampled.AudioFileFormat.Type), getAudioFileTypes()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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