public interface MidiDevice extends AutoCloseable
MidiDevice是所有MIDI设备的基础接口。 
       常用设备包括合成器,音序器,MIDI输入端口和MIDI输出端口。 
        A MidiDevice可以是MIDI事件的发射器或接收器,或两者兼而有之。 因此,它可以提供Transmitter或Receiver实例(或两者)。 通常,MIDI IN端口提供发射器,MIDI OUT端口和合成器提供接收器。 音序器通常提供用于播放的发射机和用于记录的接收机。 
 A MidiDevice可以明确地和MidiDevice地打开和关闭。 明确开放是通过调用来完成open() ,明确关闭是通过调用close()上MidiDevice实例。 如果一个应用程序显式地打开了一个MidiDevice ,它必须明确关闭它以释放系统资源,并使应用程序能够彻底地退出。 隐性打开通过调用MidiSystem.getReceiver和MidiSystem.getTransmitter完成 。 所述MidiDevice通过使用MidiSystem.getReceiver和MidiSystem.getTransmitter是依赖于实现的,除非属性javax.sound.midi.Receiver和javax.sound.midi.Transmitter被使用(见属性的描述中,选择默认提供MidiSystem )。 MidiDevice地打开的MidiDevice隐藏地关闭导致打开它的Receiver或Transmitter 。 如果应用程序获得多于一个隐式打开Receiver或Transmitter ,则设备在最后一个Receiver或Transmitter关闭后关闭。 另一方面,直接在设备实例上调用getReceiver或getTransmitter不会隐式打开设备。 关闭这些Transmitter和Receiver s不会Receiver关闭设备。 要使用具有Receiver s或Transmitter s的设备,必须明确地打开和关闭该设备。 
 如果隐含和明确的打开和关闭在同一个MidiDevice实例上混合,则适用以下规则: 
   MidiDevice device = ...; if ( ! (device instanceof Sequencer) && ! (device instanceof Synthesizer)) { // we're now sure that device represents a MIDI port // ... }   
        A MidiDevice包括一个MidiDevice.Info
Synthesizer , Sequencer , Receiver , Transmitter 
       | Modifier and Type | Interface and Description | 
|---|---|
| static class  | MidiDevice.Info
              一个 
              MidiDevice.Info对象包含有关各种数据,包括其名称,创建它的公司和描述性文本。 | 
| Modifier and Type | Method and Description | 
|---|---|
| void | close()
              关闭设备,指示设备现在应该释放它正在使用的任何系统资源。 
             | 
| MidiDevice.Info | getDeviceInfo()
              获得关于设备,包括它的Java类和信息 
              Strings包含其名称,供应商和描述。 | 
| int | getMaxReceivers()
              获取此MIDI设备上可用于接收MIDI数据的MIDI IN连接的最大数量。 
             | 
| int | getMaxTransmitters()
              获取此MIDI设备上可用于发送MIDI数据的MIDI OUT连接的最大数量。 
             | 
| long | getMicrosecondPosition()
              获取设备的当前时间戳,以微秒为单位。 
             | 
| Receiver | getReceiver()
              获取MIDI IN接收器,MIDI设备可以通过MIDI接收器接收MIDI数据。 
             | 
| List<Receiver> | getReceivers()
              返回与此MidiDevice连接的所有当前活动的非闭合接收器。 
             | 
| Transmitter | getTransmitter()
              获取MIDI输出连接,MIDI设备将从MIDI连接传输MIDI数据当应用程序完成使用后,返回的发送器必须关闭。 
             | 
| 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设备打开的Receiver和Transmitter实例都已关闭。 这包括通过MidiSystem 。 
close在界面 
            AutoCloseable 
           open() , 
            isOpen() 
           long getMicrosecondPosition()
int getMaxReceivers()
int getMaxTransmitters()
Receiver getReceiver() throws MidiUnavailableException
 通常返回的接收器实现MidiDeviceReceiver接口。 
 使用此方法Receiver不会打开设备。 为了能够使用该设备,必须通过调用open()显式地打开。 另外关闭Receiver也不会关闭设备。 它必须通过调用close()显式关闭。 
MidiUnavailableException - 由于资源限制,如果接收器不可用,则抛出 
           Receiver.close() 
           List<Receiver> getReceivers()
 通常返回的接收器实现MidiDeviceReceiver接口。 
Transmitter getTransmitter() throws MidiUnavailableException
 通常返回的发射机实现MidiDeviceTransmitter接口。 
 使用此方法Transmitter不会打开设备。 为了能够使用该设备,必须通过调用open()明确打开该设备。 此外,关闭Transmitter不关闭设备。 它必须通过调用close()显式关闭。 
MidiUnavailableException - 由于资源限制,如果 
            MidiUnavailableException ,则抛出 
           Transmitter.close() 
           List<Transmitter> getTransmitters()
 通常返回的发射机实现MidiDeviceTransmitter接口。 
 Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.