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