|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface Clip
Clip
介面表示特殊種類別的資料行,該資料行的音頻資料可以在回放前載入,而不是實時串流出。
因為資料是提前載入的且具有已知長度,所以可以設置一個剪輯,以便在其音頻資料中的任何位置開始播放。也可以創建一個循環,以便在播放剪輯時該循環重複播放。使用起始和結尾範例幀以及應該播放循環的次數指定循環。
剪輯可以從支持此型別的行的
中獲得。打開剪輯時,將資料載入到剪輯中。
Mixer
音頻剪輯的回放可以使用 start
和 stop
方法開始和終止。這些方法不重新設置介質的位置;start
導致從回放最後停止的位置繼續回放。要從剪輯的音頻資料的開頭重新啟動回放,只需通過 setFramePosition(0) 調用
即可,該方法可將介質重繞到剪輯的開頭。
stop
巢狀類別摘要 |
---|
從介面 javax.sound.sampled.DataLine 繼承的巢狀類別/介面 |
---|
DataLine.Info |
欄位摘要 | |
---|---|
static int |
LOOP_CONTINUOUSLY
指示循環應該無限期繼續而不是在指定數量的循環後完成的值。 |
方法摘要 | |
---|---|
int |
getFrameLength()
獲得介質長度(以範例幀為單位)。 |
long |
getMicrosecondLength()
獲得介質持續時間(以微秒為單位) |
void |
loop(int count)
從當前位置開始循環回放。 |
void |
open(AudioFormat format,
byte[] data,
int offset,
int bufferSize)
打開剪輯,意味著它應該獲得所有所需的系統資源並變得可操作。 |
void |
open(AudioInputStream stream)
使用出現在所提供的音頻輸入串流中的格式和音頻資料打開剪輯。 |
void |
setFramePosition(int frames)
設置介質位置(以範例幀為單位)。 |
void |
setLoopPoints(int start,
int end)
設置將在循環中播放的第一個和最後一個範例幀。 |
void |
setMicrosecondPosition(long microseconds)
設置介質位置(以微秒為單位)。 |
從介面 javax.sound.sampled.DataLine 繼承的方法 |
---|
available, drain, flush, getBufferSize, getFormat, getFramePosition, getLevel, getLongFramePosition, getMicrosecondPosition, isActive, isRunning, start, stop |
從介面 javax.sound.sampled.Line 繼承的方法 |
---|
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener |
欄位詳細資訊 |
---|
static final int LOOP_CONTINUOUSLY
loop(int)
,
常數欄位值方法詳細資訊 |
---|
void open(AudioFormat format, byte[] data, int offset, int bufferSize) throws LineUnavailableException
OPEN
事件。
在已經打開的行上調用此方法是非法的,可能導致 IllegalStateException。
注意,有些行一旦關閉,無法重新打開。試圖重新打開這樣的行將始終導致
。
LineUnavailableException
format
- 所提供的音頻資料的格式data
- 套件含要載入到剪輯中的音頻資料的位元組陣列offset
- 開始複製的點,用陣列開頭處的位元組 表示bufferSize
- 從陣列載入到剪輯的資料的位元組 數
LineUnavailableException
- 如果因資源限制而無法打開行
IllegalArgumentException
- 如果緩衝區大小不表示整數範例幀,或者如果未完全指定 format
或其無效
IllegalStateException
- 如果已經打開行
SecurityException
- 如果因安全限制而無法打開行Line.close()
,
Line.isOpen()
,
LineListener
void open(AudioInputStream stream) throws LineUnavailableException, IOException
OPEN
事件。
在已經打開的行上調用此方法是非法的,可能導致 IllegalStateException。
注意,有些行一旦關閉,無法重新打開。試圖重新打開這樣的行將始終導致
。
LineUnavailableException
stream
- 從中將音頻資料讀入剪輯的音頻輸入串流
LineUnavailableException
- 如果因資源限制而無法打開行
IOException
- 如果在讀取串流的過程中發生 I/O 異常
IllegalArgumentException
- 如果未完全指定串流的音頻格式或其無效
IllegalStateException
- 如果已經打開行
SecurityException
- if 如果因安全限制而無法打開行Line.close()
,
Line.isOpen()
,
LineListener
int getFrameLength()
AudioSystem.NOT_SPECIFIED
。AudioSystem.NOT_SPECIFIED
long getMicrosecondLength()
AudioSystem.NOT_SPECIFIED
。AudioSystem.NOT_SPECIFIED
void setFramePosition(int frames)
要獲得以範例幀為單位的當前位置,使用 DataLine
的
方法即可。
getFramePosition
frames
- 所需新介質的位置(以範例幀表示)void setMicrosecondPosition(long microseconds)
要獲得以微秒為單位的當前位置,使用 DataLine
的
方法即可。
getMicrosecondPosition
microseconds
- 所需新介質的位置(以微秒表示)void setLoopPoints(int start, int end)
start
- 以範例幀(從零開始)為單位的循環起始位置end
- 以範例幀(從零開始)為單位的循環結束位置,或為 -1 表示最後一幀
IllegalArgumentException
- 如果無法設置請求的循環點,這通常是因為一個或兩個請求的點超出介質持續時間,或因為結束點在起點之前void loop(int count)
count
次,最後繼續回放到剪輯的末尾。
如果在調用此方法時當前位置大於循環結束點,則回放只持續到剪輯的結尾,不用循環。
count
值為 0 指示任何當前循環都應該停止,並且回放應該持續到剪輯的末尾。在循環操作期間使用任何其他值調用此方法的行為都是不確定的。
如果在循環期間回放停止,則清除當前循環狀態;後續循環和起始請求的行為將不受中斷的循環操作的影響。
count
- 回放應該從循環的結束位置返回到循環的起始位置的次數,或者為 LOOP_CONTINUOUSLY
指示循環在中斷前應該一起持續
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。