|
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
,否則返回 false
open()
,
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。