|
JavaTM 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 Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。