|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
public interface MidiDevice
MidiDevice 是用於所有 MIDI 設備的基介面。常見的設備包括合成器、sequencer、MIDI 輸入埠號和 MIDI 輸出埠號。
MidiDevice 可以是 MIDI 事件的傳輸器或接收器,或同時為二者。因此,它可以提供 Transmitter 或 Receiver 實例(或二者都提供)。通常情況下,MIDI IN 埠號提供傳輸器,MIDI OUT 埠號和合成器提供接收器。Sequencer 通常提供用於回放的傳輸器和用於錄音的接收器。
MidiDevice 可顯式打開和關閉,也可隱式打開和關閉。顯式打開通過在 MidiDevice 實例上調用 open() 來實作,顯式關閉通過在 MidiDevice 實例上調用 close() 來實作。如果應用程序顯式打開了 MidiDevice,則也必須顯式地將其關閉,以釋放系統資源和允許應用程序完全退出。隱式打開通過調用 MidiSystem.getReceiver 和 MidiSystem.getTransmitter 實作。由 MidiSystem.getReceiver 和 MidiSystem.getTransmitter 使用的 MidiDevice 與實作相關,除非使用了屬性 javax.sound.midi.Receiver 和 javax.sound.midi.Transmitter(請參見 MidiSystem 中對用於選擇預設提供者的屬性的描述)。對隱式打開的 MidiDevice 可隱式關閉它,方法是關閉打開它所得到的 Receiver 或 Transmitter。如果應用程序獲得了多個隱式打開的 Receiver 或 Transmitter,則在關閉最後一個 Receiver 或 Transmitter 後才關閉設備。另一方面,直接在設備實例上調用 getReceiver 或 getTransmitter 並不會隱式打開此設備。關閉這些 Transmitter 和 Receiver 並不隱式關閉設備。要使用其 Receiver 或 Transmitter 以這樣的方式獲得的設備,必須顯式打開和關閉此設備。
如果在同一 MidiDevice 實例上混用隱式和顯式的打開和關閉,則應用以下規則:
MidiDevice device = ...;
if ( ! (device instanceof Sequencer) && ! (device instanceof Synthesizer)) {
// we're now sure that device represents a MIDI port
// ...
}
MidiDevice 套件括一個提供製造商資訊和其他資訊的 物件。
MidiDevice.Info
Synthesizer,
Sequencer,
Receiver,
Transmitter| 巢狀類別摘要 | |
|---|---|
static class |
MidiDevice.Info
一個 MidiDevice.Info 物件,它包含了有關 的各種資料,包括其名稱、創建它的公司及描述性文本。 |
| 方法摘要 | |
|---|---|
void |
close()
關閉設備,指示設備現在應釋放任何正在使用的系統資源。 |
MidiDevice.Info |
getDeviceInfo()
獲得有關設備的資訊,其中包括包含了其名稱、供應商和描述的 Java 類別和 Strings。 |
int |
getMaxReceivers()
獲得該 MIDI 設備上用於接收 MIDI 資料的最大可用 MIDI IN 連接數。 |
int |
getMaxTransmitters()
獲得該 MIDI 設備用於傳輸 MIDI 資料的最大可用 MIDI OUT 連接數。 |
long |
getMicrosecondPosition()
獲得設備的當前時間戳,以微秒為單位。 |
Receiver |
getReceiver()
獲得 MIDI 設備可通過其接收 MIDI 資料的 MIDI IN 接收器。 |
List<Receiver> |
getReceivers()
返回與該 MidiDevice 連接的所有當前活動的、非關閉的接收器。 |
Transmitter |
getTransmitter()
獲得 MIDI 設備將從其傳輸 MIDI 資料的 MIDI OUT 連接。 |
List<Transmitter> |
getTransmitters()
返回與該 MidiDevice 連接的所有當前活動的、非關閉的傳輸器。 |
boolean |
isOpen()
報告設備是否為打開狀態。 |
void |
open()
打開設備,指示它現在應獲取任何所需的系統資源然後開始運行。 |
| 方法詳細資訊 |
|---|
MidiDevice.Info getDeviceInfo()
Strings。
void open()
throws MidiUnavailableException
使用此調用顯式打開設備的應用程序必須通過調用 close() 開關閉該設備。這樣做對於釋放系統資源和讓應用程序完全退出很有必要。
注意,有些設備一旦關閉就無法重新打開。嘗試重新打開這樣的設備將始終返回一個 MidiUnavailableException。
MidiUnavailableException - 如果由於資源限制而無法打開該設備。
SecurityException - 如果由於安全限制而無法打開該設備。close(),
isOpen()void close()
從此設備打開的所有 Receiver 和 Transmitter 實例都將關閉。這包括通過 MidiSystem 獲取的實例。
open(),
isOpen()boolean isOpen()
true,否則返回 falseopen(),
close()long getMicrosecondPosition()
int getMaxReceivers()
int getMaxTransmitters()
Receiver getReceiver()
throws MidiUnavailableException
使用此方法獲得 Receiver 並不打開設備。要想能夠使用該設備,必須通過調用 open() 將其顯式打開。同理,關閉 Receiver 並不關閉設備。必須通過調用 close() 將其顯式關閉。
MidiUnavailableException - 如果由於資源限制使接收器不可用Receiver.close()List<Receiver> getReceivers()
Transmitter getTransmitter()
throws MidiUnavailableException
使用此方法獲得 Transmitter 並不打開設備。要想能夠使用該設備,必須通過調用 open() 將其顯式打開。同理,關閉 Transmitter 並不關閉設備。必須通過調用 close() 將其顯式關閉。
MidiUnavailableException - 如果由於資源限制使傳輸器不可用Transmitter.close()List<Transmitter> getTransmitters()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。