-  
       
- All Superinterfaces:
 -  
         
AutoCloseable 
- All Known Subinterfaces:
 -  
         
Sequencer,Synthesizer 
public interface MidiDevice extends AutoCloseable
MidiDevice是所有MIDI设备的基本界面。 常用设备包括合成器,音序器,MIDI输入端口和MIDI输出端口。MidiDevice可以是MIDI事件的发送器或接收器,或两者。 因此,它可以提供Transmitter或Receiver个实例(或两者)。 通常,MIDI IN端口提供发送器,MIDI OUT端口和合成器提供接收器。 定序器通常提供用于回放的发送器和用于记录的接收器。MidiDevice可以显式地和隐式地打开和关闭。 通过调用open()完成显式打开,通过在MidiDevice实例上调用close()完成显式关闭。 如果应用程序显式打开MidiDevice,则必须显式关闭它以释放系统资源并使应用程序干净地退出。 通过调用MidiSystem.getReceiver()和MidiSystem.getTransmitter()完成隐式打开。 所述MidiDevice通过使用MidiSystem.getReceiver和MidiSystem.getTransmitter是依赖于实现的,除非属性javax.sound.midi.Receiver和javax.sound.midi.Transmitter被使用(见属性的描述中,选择默认提供MidiSystem)。 一个MidiDevice这是隐式打开,通过关闭隐式关闭Receiver或Transmitter,导致打开它。 如果应用程序获得多个隐式打开Receiver或Transmitter,则在关闭最后一个Receiver或Transmitter后关闭设备。 另一方面,直接在设备实例上调用getReceiver或getTransmitter不会隐式打开设备。 关闭这些Transmitters和Receivers不会隐式关闭设备。 要使用以这种方式获得的Receivers或Transmitters的设备,必须明确打开和关闭设备。如果在同一个
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 
 
-  
        
       
-  
             
嵌套类汇总
嵌套类 变量和类型 接口 描述 static classMidiDevice.InfoMidiDevice.Info对象包含有关MidiDevice的各种数据,包括其名称,创建它的公司以及描述性文本。 
-  
             
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 voidclose()关闭设备,指示设备现在应该释放它正在使用的任何系统资源。MidiDevice.InfogetDeviceInfo()获取有关设备的信息,包括其Java类和包含其名称,供应商和描述的Strings。intgetMaxReceivers()获得此MIDI设备上可用于接收MIDI数据的最大MIDI IN连接数。intgetMaxTransmitters()获得此MIDI设备上可用于传输MIDI数据的最大MIDI OUT连接数。longgetMicrosecondPosition()获得设备的当前时间戳,以微秒为单位。ReceivergetReceiver()获得MIDI IN接收器,MIDI设备可通过该接收器接收MIDI数据。List<Receiver>getReceivers()返回与此MidiDevice连接的所有当前活动的非关闭接收器。TransmittergetTransmitter()获得MIDI设备将从中传输MIDI数据的MIDI OUT连接。List<Transmitter>getTransmitters()返回与此MidiDevice连接的所有当前活动的非闭合发送器。booleanisOpen()报告设备是否已打开。voidopen()打开设备,指示它现在应该获取它所需的任何系统资源并开始运行。 
 -  
             
 
-  
        
       
-  
             
方法详细信息
-  
getDeviceInfo
MidiDevice.Info getDeviceInfo()
获取有关设备的信息,包括其Java类和包含其名称,供应商和描述的Strings。- 结果
 - 设备信息
 
 
-  
open
void open() throws MidiUnavailableException
打开设备,指示它现在应该获取它所需的任何系统资源并开始运行。使用此调用明确打开设备的应用程序必须通过调用
close()来关闭设备。 这是释放系统资源并允许应用程序干净地退出所必需的。请注意,某些设备一旦关闭,就无法重新打开。 尝试重新打开此类设备将始终生成
MidiUnavailableException。- 异常
 -  
              
MidiUnavailableException- 如果由于资源限制而无法打开设备,则抛出此异常 -  
              
SecurityException- 如果由于安全限制而无法打开设备,则抛出此异常 - 另请参见:
 -  
              
close(),isOpen() 
 
-  
close
void close()
关闭设备,指示设备现在应该释放它正在使用的任何系统资源。从此设备打开的所有
Receiver和Transmitter实例均已关闭。 这包括通过MidiSystem检索的实例。- Specified by:
 -  
              
close,界面AutoCloseable - 另请参见:
 -  
              
open(),isOpen() 
 
-  
getMicrosecondPosition
long getMicrosecondPosition()
获得设备的当前时间戳,以微秒为单位。 如果设备支持时间戳,则应在设备打开时从0开始计数,并继续以微秒为单位递增其时间戳,直到设备关闭为止。 如果它不支持时间戳,则应始终返回-1。- 结果
 - 设备的当前时间戳(以微秒为单位),如果设备不支持时间戳,则为-1
 
 
-  
getMaxReceivers
int getMaxReceivers()
获得此MIDI设备上可用于接收MIDI数据的最大MIDI IN连接数。- 结果
 - MIDI IN连接的最大数量,如果有无限数量的连接,则为-1
 
 
-  
getMaxTransmitters
int getMaxTransmitters()
获得此MIDI设备上可用于传输MIDI数据的最大MIDI OUT连接数。- 结果
 - MIDI OUT连接的最大数量,如果有无限数量的连接,则为-1
 
 
-  
getReceiver
Receiver getReceiver() throws MidiUnavailableException
获得MIDI IN接收器,MIDI设备可通过该接收器接收MIDI数据。 应用程序使用完毕后,必须关闭返回的接收器。通常,返回的接收器实现
MidiDeviceReceiver接口。使用此方法获取
Receiver不会打开设备。 为了能够使用该设备,必须通过致电open()明确打开它。 此外,关闭Receiver不会关闭设备。 必须通过致电close()明确关闭。- 结果
 - 设备的接收器
 - 异常
 -  
              
MidiUnavailableException- 如果由于资源限制而无法使用接收器,则抛出此异常 - 另请参见:
 -  
              
Receiver.close() 
 
-  
getReceivers
List<Receiver> getReceivers()
返回与此MidiDevice连接的所有当前活动的非关闭接收器。 可以通过关闭接收器将其从设备中移除。通常,返回的接收器实现
MidiDeviceReceiver接口。- 结果
 - 一个不可修改的开放接收者名单
 - 从以下版本开始:
 - 1.5
 
 
-  
getTransmitter
Transmitter getTransmitter() throws MidiUnavailableException
获得MIDI设备将从中传输MIDI数据的MIDI OUT连接。 应用程序使用完毕后,必须关闭返回的变送器。通常,返回的发送器实现
MidiDeviceTransmitter接口。使用此方法获取
Transmitter不会打开设备。 为了能够使用该设备,必须通过致电open()明确打开它。 此外,关闭Transmitter不会关闭设备。 必须通过致电close()明确关闭它。- 结果
 - 设备的MIDI OUT发射器
 - 异常
 -  
              
MidiUnavailableException- 由于资源限制,如果发射机不可用则抛出 - 另请参见:
 -  
              
Transmitter.close() 
 
-  
getTransmitters
List<Transmitter> getTransmitters()
返回与此MidiDevice连接的所有当前活动的非闭合发送器。 可以通过关闭发射器将其从设备中移除。通常,返回的发送器实现
MidiDeviceTransmitter接口。- 结果
 - 一个不可修改的开放式发射机列表
 - 从以下版本开始:
 - 1.5
 
 
 -  
 
 -