|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.sound.sampled.AudioSystem
public class AudioSystem
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.Info
的 getName
方法返回的 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
。
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 |
欄位詳細資訊 |
---|
public static final int NOT_SPECIFIED
NOT_SPECIFIED
值。據文檔記錄,其他方法可能也接受或返回此值。
方法詳細資訊 |
---|
public static Mixer.Info[] getMixerInfo()
getMixer(javax.sound.sampled.Mixer.Info)
public static Mixer getMixer(Mixer.Info info)
info
- 表示所需混頻器的 Mixer.Info
物件,或者為 null
,表示系統預設混頻器
SecurityException
- 如果因為安全限制請求的混頻器不可用
IllegalArgumentException
- 如果資訊物件不表示安裝在系統上的混頻器getMixerInfo()
public static Line.Info[] getSourceLineInfo(Line.Info info)
info
- 指定請求其資訊的行種類別的 Line.Info
物件
Line.Info
物件的陣列,這些物件描述與請求的型別比對的源行。如果所有的比對源行都不受支持,則返回長度為 0 的陣列。Mixer.getSourceLineInfo(Line.Info)
public static Line.Info[] getTargetLineInfo(Line.Info info)
info
- 指定請求其資訊的行種類別的 Line.Info
物件
Line.Info
物件的陣列,這些物件描述與請求的型別比對的目標行。如果所有的比對目標行都不受支持,則返回長度為 0 的陣列。Mixer.getTargetLineInfo(Line.Info)
public static boolean isLineSupported(Line.Info info)
Line.Info
物件比對的行。如果所有已安裝的混頻器都支持行,則說明行受支持。
info
- 描述查詢其支持的行的 Line.Info
物件
true
;否則返回 false
Mixer.isLineSupported(Line.Info)
public static Line getLine(Line.Info info) throws LineUnavailableException
Line.Info
物件中的描述比對的行。
如果請求 DataLine
,且 info
是 DataLine.Info
的實例(至少指定一種完全限定的音頻格式),則上一個資料行將用作返回的 DataLine
的預設格式。
如果定義了系統屬性 javax.sound.sampled.Clip
、javax.sound.sampled.Port
、javax.sound.sampled.SourceDataLine
和 javax.sound.sampled.TargetDataLine
,或在檔案 "sound.properties" 中定義它們,則使用它們檢索預設行。有關詳細資訊,請參閱類別描述
。
如果未設置相應屬性,或尚未安裝屬性中請求的混頻器,或不提供請求的行,則在所有安裝的混頻器中查詢請求的行型別。從提供請求的行型別的第一個混頻器中返回行。
info
- 描述所需種類別的行的 Line.Info
物件
LineUnavailableException
- 如果由於資源限制比對行不可用
SecurityException
- 如果由於安全限制比對行不可用
IllegalArgumentException
- 如果系統不是通過所有安裝的混頻器至少支持一個比對 Line.Info
物件的行public static Clip getClip() throws LineUnavailableException
Clip
物件的任何其他混頻器提供。
返回的剪輯必須用 open(AudioFormat)
或 open(AudioInputStream)
方法打開。
這是在內部使用 getMixer
和 getLine
的高層級方法。
如果定義了系統屬性 javax.sound.sampled.Clip
,或在檔案 "sound.properties" 中定義了它,則使用它檢索預設剪輯。有關詳細資訊,請參閱類別描述
。
LineUnavailableException
- 如果由於資源限制剪輯物件不可用
SecurityException
- 如果由於安全限制剪輯物件不可用
IllegalArgumentException
- 如果不是通過所有安裝的混頻器至少支持一個剪輯實例getClip(Mixer.Info)
public static Clip getClip(Mixer.Info mixerInfo) throws LineUnavailableException
返回的剪輯必須用 open(AudioFormat)
或 open(AudioInputStream)
方法打開。
這是在內部使用 getMixer
和 getLine
的高層級方法。
mixerInfo
- 表示所需混頻器的 Mixer.Info
物件,或者為 null
,表示系統預設混頻器
LineUnavailableException
- 如果由於資源限制此混頻器不提供剪輯
SecurityException
- 如果由於安全限制此混頻器不提供剪輯
IllegalArgumentException
- 如果系統不是通過所有安裝的混頻器至少支持一個剪輯getClip()
public static SourceDataLine getSourceDataLine(AudioFormat format) throws LineUnavailableException
AudioFormat
物件指定的格式回放音頻資料。返回的行將通過預設系統混頻器提供,如果有可能,則通過安裝在系統中的支持比對 SourceDataLine
物件的任何其他混頻器提供。
返回的行應該用 open(AudioFormat)
或 open(AudioFormat, int)
方法打開。
這是在內部使用 getMixer
和 getLine
的高層級方法。
返回的 SourceDataLine
的預設音頻格式將使用 format
進行初始化。
如果定義了系統屬性 javax.sound.sampled.SourceDataLine
,或在檔案 "sound.properties" 中定義了它,則使用它檢索預設的源資料行。有關詳細資訊,請參閱類別描述
。
format
- 指定返回行的受支持格式的 AudioFormat
物件,或者為 null
,表示任何音頻格式
SourceDataLine
物件
LineUnavailableException
- 如果由於資源限制比對的源資料行不可用
SecurityException
- 如果由於安全限制比對的源資料行不可用
IllegalArgumentException
- 如果系統不是通過所有安裝的混頻器至少支持一個支持指定音頻格式的源資料行getSourceDataLine(AudioFormat, Mixer.Info)
public static SourceDataLine getSourceDataLine(AudioFormat format, Mixer.Info mixerinfo) throws LineUnavailableException
AudioFormat
物件(通過由 Mixer.Info
物件指定的混頻器提供)指定的格式回放音頻資料。
返回的行應該用 open(AudioFormat)
或 open(AudioFormat, int)
方法打開。
這是在內部使用 getMixer
和 getLine
的高層級方法。
返回的 SourceDataLine
的預設音頻格式將使用 format
進行初始化。
format
- 指定返回行的受支持音頻格式的 AudioFormat
物件,或者為 null
,表示任何音頻格式mixerinfo
- 表示所需混頻器的 Mixer.Info
物件,或者為null
,表示系統預設混頻器
SourceDataLine
物件
LineUnavailableException
- 如果由於資源限制指定混頻器中的比對源資料行不可用
SecurityException
- 如果由於安全限制指定混頻器中的比對源資料行不可用
IllegalArgumentException
- 如果指定的混頻器不至少支持一個支持指定音頻格式的源資料行getSourceDataLine(AudioFormat)
public static TargetDataLine getTargetDataLine(AudioFormat format) throws LineUnavailableException
AudioFormat
物件指定的格式記錄音頻資料。返回的行將通過預設系統混頻器提供,如果有可能,則通過安裝在系統中的支持比對 TargetDataLine
物件的任何其他混頻器提供。
返回的行應該用 open(AudioFormat)
或 open(AudioFormat, int)
方法打開。
這是在內部使用 getMixer
和 getLine
的高層級方法。
返回的 TargetDataLine
的預設音頻格式將使用 format
進行初始化。
format
- 指定返回行的受支持格式的 AudioFormat
物件,或者為 null
,表示任何音頻格式
TargetDataLine
物件
LineUnavailableException
- 如果由於資源限制比對的目標資料行不可用
SecurityException
- 如果由於安全限制比對的目標資料行不可用
IllegalArgumentException
- 如果系統不是通過所有安裝的混頻器至少支持一個支持指定音頻格式的目標資料行getTargetDataLine(AudioFormat, Mixer.Info)
,
AudioPermission
public static TargetDataLine getTargetDataLine(AudioFormat format, Mixer.Info mixerinfo) throws LineUnavailableException
AudioFormat
物件(該物件通過由 Mixer.Info
物件指定的混頻器提供)指定的格式記錄音頻資料。
返回的行應該用 open(AudioFormat)
或 open(AudioFormat, int)
方法打開。
這是在內部使用 getMixer
和 getLine
的高層級方法。
返回的 TargetDataLine
的預設音頻格式將使用 format
進行初始化。
如果定義了系統屬性 javax.sound.sampled.TargetDataLine
,或在檔案 "sound.properties" 中定義了它,則使用它檢索預設的源資料行。有關詳細資訊,請參閱類別描述
。
format
- 指定返回行的受支持音頻格式的 AudioFormat
物件,或者為 null
,表示任何音頻格式mixerinfo
- 表示所需混頻器的 Mixer.Info
物件,或者為null
,表示系統預設混頻器
TargetDataLine
物件
LineUnavailableException
- 如果由於資源限制指定混頻器中的比對目標資料行不可用
SecurityException
- 如果由於安全限制指定混頻器中的比對目標資料行不可用
IllegalArgumentException
- 如果指定的混頻器不至少支持一個支持指定音頻格式的目標資料行getTargetDataLine(AudioFormat)
,
AudioPermission
public static AudioFormat.Encoding[] getTargetEncodings(AudioFormat.Encoding sourceEncoding)
sourceEncoding
- 查詢其轉換支持的編碼
sourceEncoding
,則返回長度為 0 的陣列。否則,陣列長度將至少為 1,表示 sourceEncoding
(不轉換)。public static AudioFormat.Encoding[] getTargetEncodings(AudioFormat sourceFormat)
sourceFormat
- 查詢其轉換的音頻格式
sourceFormat
,則返回長度為 0 的陣列。否則,陣列長度將至少為 1,表示 sourceFormat
的編碼(不轉換)。public static boolean isConversionSupported(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
targetEncoding
- 轉換後所需的編碼sourceFormat
- 轉換前的音頻格式
true
;否則返回 false
public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targetEncoding, AudioInputStream sourceStream)
targetEncoding
- 轉換後所需的編碼sourceStream
- 要轉換的串流
IllegalArgumentException
- 如果不支持轉換getTargetEncodings(AudioFormat.Encoding)
,
getTargetEncodings(AudioFormat)
,
isConversionSupported(AudioFormat.Encoding, AudioFormat)
,
getAudioInputStream(AudioFormat, AudioInputStream)
public static AudioFormat[] getTargetFormats(AudioFormat.Encoding targetEncoding, AudioFormat sourceFormat)
targetEncoding
- 轉換後所需的編碼sourceFormat
- 轉換前的音頻格式
public static boolean isConversionSupported(AudioFormat targetFormat, AudioFormat sourceFormat)
targetFormat
- 轉換後所需的音頻格式sourceFormat
- 轉換前的音頻格式
true
;否則返回 false
public static AudioInputStream getAudioInputStream(AudioFormat targetFormat, AudioInputStream sourceStream)
targetFormat
- 轉換後所需的音頻格式sourceStream
- 要轉換的串流
IllegalArgumentException
- 如果不支持轉換getTargetFormats(AudioFormat.Encoding, AudioFormat)
,
isConversionSupported(AudioFormat, AudioFormat)
,
getAudioInputStream(AudioFormat.Encoding, AudioInputStream)
public static AudioFileFormat getAudioFileFormat(InputStream stream) throws UnsupportedAudioFileException, IOException
IOException
。
stream
- 應該從中提取檔案格式資訊的輸入串流
AudioFileFormat
物件
UnsupportedAudioFileException
- 如果串流不指向系統識別的有效音頻檔案資料
IOException
- 如果發生輸入/輸出異常InputStream.markSupported()
,
InputStream.mark(int)
public static AudioFileFormat getAudioFileFormat(URL url) throws UnsupportedAudioFileException, IOException
url
- 應該從中提取檔案格式資訊的 URL
AudioFileFormat
物件
UnsupportedAudioFileException
- 如果該 URL 不指向系統識別的有效音頻檔案資料
IOException
- 如果發生輸入/輸出異常public static AudioFileFormat getAudioFileFormat(File file) throws UnsupportedAudioFileException, IOException
File
的音頻檔案格式。該 File
必須指向有效的音頻檔案資料。
file
- 應該從中提取檔案格式資訊的 File
AudioFileFormat
物件
UnsupportedAudioFileException
- 如果 File
不指向系統識別的有效檔案資料
IOException
- 如果發生 I/O 異常public static AudioInputStream getAudioInputStream(InputStream stream) throws UnsupportedAudioFileException, IOException
IOException
。
stream
- 應該從中建構 AudioInputStream
的輸入串流
AudioInputStream
物件。
UnsupportedAudioFileException
- 如果串流不指向系統識別的有效音頻檔案資料
IOException
- 如果發生 I/O 異常InputStream.markSupported()
,
InputStream.mark(int)
public static AudioInputStream getAudioInputStream(URL url) throws UnsupportedAudioFileException, IOException
url
- 應該為其建構 AudioInputStream
的 URL
AudioInputStream
物件
UnsupportedAudioFileException
- 如果 URL 不指向系統識別的有效音頻檔案資料
IOException
- 如果發生 I/O 異常public static AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException
File
獲得音頻輸入串流。該 File
必須指向有效的音頻檔案資料。
file
- 應該為其建構 AudioInputStream
的 File
File
指向的音頻檔案資料的 AudioInputStream
物件
UnsupportedAudioFileException
- 如果 File
不指向系統識別的有效音頻檔案資料
IOException
- 如果發生 I/O 異常public static AudioFileFormat.Type[] getAudioFileTypes()
public static boolean isFileTypeSupported(AudioFileFormat.Type fileType)
fileType
- 查詢其寫入功能的檔案型別
true
;否則返回 false
public static AudioFileFormat.Type[] getAudioFileTypes(AudioInputStream stream)
stream
- 查詢其音頻檔案型別支持的音頻輸入串流
public static boolean isFileTypeSupported(AudioFileFormat.Type fileType, AudioInputStream stream)
fileType
- 查詢其寫入功能的檔案型別stream
- 查詢其檔案寫入支持的串流
true
;否則返回 false
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()
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。