|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface DataLine
DataLine
將與介質相關的功能添加到其父級介面
。此功能包括一些傳輸控制方法,這些方法可以啟動、停止、消耗和刷新通過資料行傳入的音頻資料。資料行還可以報告介質的當前位置、音量和音頻格式。資料行通過使用子介面 Line
或 SourceDataLine
用於音頻輸出,這些子介面允許應用程序寫入資料。類似地,音頻輸入由子介面 Clip
處理,該介面允許讀取資料。
TargetDataLine
資料行有一個內部緩衝區,傳入或傳出資料在該緩衝區被加入佇列。此內部緩衝區變空之前(通常因為已處理所有列隊的資料),
方法發生阻塞。drain()
方法將放棄內部緩衝區中的所有可用的已列隊資料。
flush()
只要資料行開始還是停止資料的活動現象或資料的捕獲,就會產生
和 START
事件。這些事件可能在回應特定請求時產生,也可能是不太直接的狀態更改的結果。例如,如果對非活動資料行調用 STOP
,且資料可用於捕獲或回放,則將在實際開始資料回放或捕獲時產生 start()
START
事件。或者,如果因為活動資料行的資料串流受到限制而在資料呈現中發生間隙,則產生 STOP
事件。
混頻器常常支持多條資料行的同步控制。可以通過混頻器介面的
方法來建立同步。關於更完整的描述,請參見 synchronize
介面的描述。
Mixer
LineEvent
巢狀類別摘要 | |
---|---|
static class |
DataLine.Info
除了繼承自其父級類別的類別資訊之外, DataLine.Info 還提供特定於資料行的其他資訊。 |
方法摘要 | |
---|---|
int |
available()
獲得當前可用於資料行內部緩衝區中處理的應用程序的資料位元組數。 |
void |
drain()
通過在清空資料行的內部緩衝區之前繼續資料 I/O,排空資料行中的列隊資料。 |
void |
flush()
刷新資料行中已列隊的資料。 |
int |
getBufferSize()
獲得將適合資料行的內部緩衝區的最大資料位元組數。 |
AudioFormat |
getFormat()
獲得資料行的音頻資料的當前格式(編碼、樣本頻率、通道數,等等)。 |
int |
getFramePosition()
獲得音頻資料中的當前位置(以樣本幀為單位)。 |
float |
getLevel()
獲得行的當前音量級別。 |
long |
getLongFramePosition()
獲得音頻資料中的當前位置(以樣本幀為單位)。 |
long |
getMicrosecondPosition()
獲得音頻資料中的當前位置(以微秒為單位)。 |
boolean |
isActive()
指示該行是否正在進行活動 I/O(如回放或捕獲)。 |
boolean |
isRunning()
指示該行是否正在運行。 |
void |
start()
允許某一資料行執行資料 I/O。 |
void |
stop()
停止行。 |
從介面 javax.sound.sampled.Line 繼承的方法 |
---|
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener |
方法詳細資訊 |
---|
void drain()
drain()
,則在該行正在運行和資料佇列變空之前,此方法將發生阻塞。如果通過一個執行緒調用 drain()
,另一個執行緒繼續填充資料佇列,則該操作沒有完成。此方法總是在關閉資料行時返回。
flush()
void flush()
stop()
,
drain()
void start()
START
事件。
stop()
,
isRunning()
,
LineEvent
void stop()
flush
方法丟棄保留的資料。當音頻捕獲或回放停止時,產生 STOP
事件。
start()
,
isRunning()
,
flush()
,
LineEvent
boolean isRunning()
false
。打開的行將在回應調用 start
方法而呈現第一個資料時開始運行,並可持續到回應調用 stop
或因為回放結束而表現為停止狀態時為止。
true
;否則返回 false
start()
,
stop()
boolean isActive()
START
事件。類似地,當活動行變得不活動時,它將發送 STOP
事件。
true
;否則返回 false
Line.isOpen()
,
Line.addLineListener(javax.sound.sampled.LineListener)
,
Line.removeLineListener(javax.sound.sampled.LineListener)
,
LineEvent
,
LineListener
AudioFormat getFormat()
如果行未打開且從來沒有打開過,則返回預設格式。預設格式是一個特定音頻格式實作,如果 DataLine.Info
物件(用於檢索此 DataLine
)至少指定一個完全限定的音頻格式,則將最後一個格式用作預設格式。打開具有特定音頻格式(如 SourceDataLine.open(AudioFormat)
)的行將覆寫預設格式。
AudioFormat
int getBufferSize()
int available()
注意,這裡使用的單位是位元組,但將始終對應於音頻資料的樣本幀數(整數)。
保證應用程序對從 available()
返回的位元組數進行的讀取或寫入操作不受阻塞;不過,不保證試圖讀取或寫入更多資料將發生阻塞。
int getFramePosition()
getLongFramePosition
。
getLongFramePosition()
long getLongFramePosition()
long getMicrosecondPosition()
float getLevel()
AudioSystem.NOT_SPECIFIED
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。