435 lines
23 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
javax.sound.midi
</div>
<h2 class="title" title="Interface MidiDevice">Interface MidiDevice</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Superinterfaces:
</dt>
<dd>
<span><a href="../../../java/lang/AutoCloseable.html" title="java.lang中的接口">AutoCloseable</a></span>
</dd>
</dl>
<dl>
<dt>
All Known Subinterfaces:
</dt>
<dd>
<span><a href="../../../javax/sound/midi/Sequencer.html" title="javax.sound.midi中的接口">Sequencer</a> <a href="../../../javax/sound/midi/Synthesizer.html" title="javax.sound.midi中的接口">Synthesizer</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public interface <span class="typeNameLabel">MidiDevice</span>
extends <a href="../../../java/lang/AutoCloseable.html" title="interface in java.lang">AutoCloseable</a></pre>
<div class="block">
<span><code>MidiDevice</code>是所有MIDI设备的基础接口。</span>
<span>常用设备包括合成器音序器MIDI输入端口和MIDI输出端口。</span>
<p> <span>A <code>MidiDevice</code>可以是MIDI事件的发射器或接收器或两者兼而有之。</span> <span>因此,它可以提供<a href="../../../javax/sound/midi/Transmitter.html" title="javax.sound.midi中的接口"><code>Transmitter</code></a><a href="../../../javax/sound/midi/Receiver.html" title="javax.sound.midi中的接口"><code>Receiver</code></a>实例(或两者)。</span> <span>通常MIDI IN端口提供发射器MIDI OUT端口和合成器提供接收器。</span> <span>音序器通常提供用于播放的发射机和用于记录的接收机。</span> </p>
<p> <span>A <code>MidiDevice</code>可以明确地和<code>MidiDevice</code>地打开和关闭。</span> <span>明确开放是通过调用来完成<a href="../../../javax/sound/midi/MidiDevice.html#open--"><code>open()</code></a> ,明确关闭是通过调用<a href="../../../javax/sound/midi/MidiDevice.html#close--"><code>close()</code></a><code>MidiDevice</code>实例。</span> <span>如果一个应用程序显式地打开了一个<code>MidiDevice</code> ,它必须明确关闭它以释放系统资源,并使应用程序能够彻底地退出。</span> <span>隐性打开通过调用<a href="../../../javax/sound/midi/MidiSystem.html#getReceiver--"><code>MidiSystem.getReceiver</code></a><a href="../../../javax/sound/midi/MidiSystem.html#getTransmitter--"><code>MidiSystem.getTransmitter</code>完成</a></span> <span>所述<code>MidiDevice</code>通过使用<code>MidiSystem.getReceiver</code><code>MidiSystem.getTransmitter</code>是依赖于实现的,除非属性<code>javax.sound.midi.Receiver</code><code>javax.sound.midi.Transmitter</code>被使用(见属性的描述中,选择默认提供<a href="../../../javax/sound/midi/MidiSystem.html" title="javax.sound.midi中的类"><code>MidiSystem</code></a> )。</span> <span><code>MidiDevice</code>地打开的MidiDevice隐藏地关闭导致打开它的<code>Receiver</code><code>Transmitter</code></span> <span>如果应用程序获得多于一个隐式打开<code>Receiver</code><code>Transmitter</code> ,则设备在最后一个<code>Receiver</code><code>Transmitter</code>关闭后关闭。</span> <span>另一方面,直接在设备实例上调用<code>getReceiver</code><code>getTransmitter</code>不会隐式打开设备。</span> <span>关闭这些<code>Transmitter</code><code>Receiver</code> s不会<code>Receiver</code>关闭设备。</span> <span>要使用具有<code>Receiver</code> s或<code>Transmitter</code> s的设备必须明确地打开和关闭该设备。</span> </p>
<p> <span>如果隐含和明确的打开和关闭在同一个<code>MidiDevice</code>实例上混合,则适用以下规则:</span> </p>
<ul>
<li> <span>在显式打开(隐式打开之前或之后)时,设备将不会被隐式关闭关闭。</span> <span>关闭显式打开的设备的唯一方法是显式关闭。</span> </li>
<li> <span>显式关闭始终关闭设备,即使它也已隐式打开。</span> <span>随后的隐含关系没有进一步的影响。</span> </li>
</ul>
<span>要检测MidiDevice是否代表硬件MIDI端口可以使用以下编程技术</span>
<pre> <span><code> MidiDevice device = ...; if ( ! (device instanceof Sequencer) &amp;&amp; ! (device instanceof Synthesizer)) { // we're now sure that device represents a MIDI port // ... } </code></span> </pre>
<p> <span>A <code>MidiDevice</code>包括一个<code><a href="../../../javax/sound/midi/MidiDevice.Info.html" title="class in javax.sound.midi"><code>MidiDevice.Info</code></a></code>对象来提供制造商信息等。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/midi/Synthesizer.html" title="javax.sound.midi中的接口"><code>Synthesizer</code></a> <a href="../../../javax/sound/midi/Sequencer.html" title="javax.sound.midi中的接口"><code>Sequencer</code></a> <a href="../../../javax/sound/midi/Receiver.html" title="javax.sound.midi中的接口"><code>Receiver</code></a> <a href="../../../javax/sound/midi/Transmitter.html" title="javax.sound.midi中的接口"><code>Transmitter</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- --> </a> <h3>Nested Class Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption>
<span>Nested Classes</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.Info.html" title="class in javax.sound.midi">MidiDevice.Info</a></span></code>
<div class="block">
一个
<code>MidiDevice.Info</code>对象包含有关
<code><a href="../../../javax/sound/midi/MidiDevice.html" title="interface in javax.sound.midi"><code>MidiDevice</code></a></code>各种数据,包括其名称,创建它的公司和描述性文本。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#close--">close</a></span>()</code>
<div class="block">
关闭设备,指示设备现在应该释放它正在使用的任何系统资源。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="../../../javax/sound/midi/MidiDevice.Info.html" title="class in javax.sound.midi">MidiDevice.Info</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#getDeviceInfo--">getDeviceInfo</a></span>()</code>
<div class="block">
获得关于设备包括它的Java类和信息
<code>Strings</code>包含其名称,供应商和描述。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#getMaxReceivers--">getMaxReceivers</a></span>()</code>
<div class="block">
获取此MIDI设备上可用于接收MIDI数据的MIDI IN连接的最大数量。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#getMaxTransmitters--">getMaxTransmitters</a></span>()</code>
<div class="block">
获取此MIDI设备上可用于发送MIDI数据的MIDI OUT连接的最大数量。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#getMicrosecondPosition--">getMicrosecondPosition</a></span>()</code>
<div class="block">
获取设备的当前时间戳,以微秒为单位。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="../../../javax/sound/midi/Receiver.html" title="interface in javax.sound.midi">Receiver</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#getReceiver--">getReceiver</a></span>()</code>
<div class="block">
获取MIDI IN接收器MIDI设备可以通过MIDI接收器接收MIDI数据。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="../../../java/util/List.html" title="interface in java.util">List</a>&lt;<a href="../../../javax/sound/midi/Receiver.html" title="interface in javax.sound.midi">Receiver</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#getReceivers--">getReceivers</a></span>()</code>
<div class="block">
返回与此MidiDevice连接的所有当前活动的非闭合接收器。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code><a href="../../../javax/sound/midi/Transmitter.html" title="interface in javax.sound.midi">Transmitter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#getTransmitter--">getTransmitter</a></span>()</code>
<div class="block">
获取MIDI输出连接MIDI设备将从MIDI连接传输MIDI数据当应用程序完成使用后返回的发送器必须关闭。
</div> </td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code><a href="../../../java/util/List.html" title="interface in java.util">List</a>&lt;<a href="../../../javax/sound/midi/Transmitter.html" title="interface in javax.sound.midi">Transmitter</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#getTransmitters--">getTransmitters</a></span>()</code>
<div class="block">
返回与此MidiDevice连接的所有当前有效的非闭合发射器。
</div> </td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#isOpen--">isOpen</a></span>()</code>
<div class="block">
报告设备是否打开。
</div> </td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiDevice.html#open--">open</a></span>()</code>
<div class="block">
打开设备,表明它现在应该获得所需的任何系统资源并可以运行。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getDeviceInfo--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getDeviceInfo</h4> <pre><a href="../../../javax/sound/midi/MidiDevice.Info.html" title="class in javax.sound.midi">MidiDevice.Info</a> getDeviceInfo()</pre>
<div class="block">
获得关于设备包括它的Java类和信息
<code>Strings</code>包含其名称,供应商和描述。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
设备信息
</dd>
</dl> </li>
</ul> <a name="open--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>open</h4> <pre>void open()
throws <a href="../../../javax/sound/midi/MidiUnavailableException.html" title="class in javax.sound.midi">MidiUnavailableException</a></pre>
<div class="block">
<span>打开设备,表明它现在应该获得所需的任何系统资源并可以运行。</span>
<p> <span>通过此呼叫显式打开设备的应用程序必须通过调用<a href="../../../javax/sound/midi/MidiDevice.html#close--"><code>close()</code></a>关闭设备。</span> <span>这是释放系统资源和允许应用程序彻底退出的必要条件。</span> </p>
<p> <span>请注意,一旦关闭,某些设备无法重新打开。</span> <span>尝试重新打开此类设备将始终导致MidiUnavailableException。</span> </p>
</div>
<dl>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/sound/midi/MidiUnavailableException.html" title="class in javax.sound.midi">MidiUnavailableException</a></code> - 由于资源限制,设备无法打开时抛出。
</dd>
<dd>
<code><a href="../../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 由于安全限制,设备无法打开时抛出。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiDevice.html#close--"><code>close()</code></a>
<a href="../../../javax/sound/midi/MidiDevice.html#isOpen--"><code>isOpen()</code></a>
</dd>
</dl> </li>
</ul> <a name="close--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>close</h4> <pre>void close()</pre>
<div class="block">
<span>关闭设备,指示设备现在应该释放它正在使用的任何系统资源。</span>
<p> <span>所有<code>Receiver</code>设备打开的<code>Receiver</code><code>Transmitter</code>实例都已关闭。</span> <span>这包括通过<code>MidiSystem</code></span> </p>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../java/lang/AutoCloseable.html#close--">close</a></code>在界面
<code><a href="../../../java/lang/AutoCloseable.html" title="interface in java.lang">AutoCloseable</a></code>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiDevice.html#open--"><code>open()</code></a>
<a href="../../../javax/sound/midi/MidiDevice.html#isOpen--"><code>isOpen()</code></a>
</dd>
</dl> </li>
</ul> <a name="isOpen--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>isOpen</h4> <pre>boolean isOpen()</pre>
<div class="block">
报告设备是否打开。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<code>true</code>如果设备打开,否则为
<code>false</code>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiDevice.html#open--"><code>open()</code></a>
<a href="../../../javax/sound/midi/MidiDevice.html#close--"><code>close()</code></a>
</dd>
</dl> </li>
</ul> <a name="getMicrosecondPosition--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getMicrosecondPosition</h4> <pre>long getMicrosecondPosition()</pre>
<div class="block">
<span>获取设备的当前时间戳,以微秒为单位。</span>
<span>如果设备支持时间戳,则在设备打开时应开始计数,并继续递增其时间戳,以微秒为单位,直到设备关闭。</span>
<span>如果不支持时间戳,则应始终返回-1。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
设备的当前时间戳(以微秒为单位),如果设备不支持时间戳,则为-1。
</dd>
</dl> </li>
</ul> <a name="getMaxReceivers--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getMaxReceivers</h4> <pre>int getMaxReceivers()</pre>
<div class="block">
获取此MIDI设备上可用于接收MIDI数据的MIDI IN连接的最大数量。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
MIDI IN连接的最大数量如果无限数量的连接可用则为-1。
</dd>
</dl> </li>
</ul> <a name="getMaxTransmitters--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getMaxTransmitters</h4> <pre>int getMaxTransmitters()</pre>
<div class="block">
获取此MIDI设备上可用于发送MIDI数据的MIDI OUT连接的最大数量。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
MIDI OUT连接的最大数量如果无限数量的连接可用则为-1。
</dd>
</dl> </li>
</ul> <a name="getReceiver--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getReceiver</h4> <pre><a href="../../../javax/sound/midi/Receiver.html" title="interface in javax.sound.midi">Receiver</a> getReceiver()
throws <a href="../../../javax/sound/midi/MidiUnavailableException.html" title="class in javax.sound.midi">MidiUnavailableException</a></pre>
<div class="block">
<span>获取MIDI IN接收器MIDI设备可以通过MIDI接收器接收MIDI数据。</span>
<span>当应用程序完成使用后,返回的接收方必须关闭。</span>
<p> <span>通常返回的接收器实现<code>MidiDeviceReceiver</code>接口。</span> </p>
<p> <span>使用此方法<code>Receiver</code>不会打开设备。</span> <span>为了能够使用该设备,必须通过调用<a href="../../../javax/sound/midi/MidiDevice.html#open--"><code>open()</code>显式</a>地打开。</span> <span>另外关闭<code>Receiver</code>也不会关闭设备。</span> <span>它必须通过调用<a href="../../../javax/sound/midi/MidiDevice.html#close--"><code>close()</code>显式</a>关闭。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
该设备的接收器。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/sound/midi/MidiUnavailableException.html" title="class in javax.sound.midi">MidiUnavailableException</a></code> - 由于资源限制,如果接收器不可用,则抛出
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/Receiver.html#close--"><code>Receiver.close()</code></a>
</dd>
</dl> </li>
</ul> <a name="getReceivers--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getReceivers</h4> <pre><a href="../../../java/util/List.html" title="interface in java.util">List</a>&lt;<a href="../../../javax/sound/midi/Receiver.html" title="interface in javax.sound.midi">Receiver</a>&gt; getReceivers()</pre>
<div class="block">
<span>返回与此MidiDevice连接的所有当前活动的非闭合接收器。</span>
<span>通过关闭接收器可以从设备中移除。</span>
<p> <span>通常返回的接收器实现<code>MidiDeviceReceiver</code>接口。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个不可修改的开放式接收器列表
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.5
</dd>
</dl> </li>
</ul> <a name="getTransmitter--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getTransmitter</h4> <pre><a href="../../../javax/sound/midi/Transmitter.html" title="interface in javax.sound.midi">Transmitter</a> getTransmitter()
throws <a href="../../../javax/sound/midi/MidiUnavailableException.html" title="class in javax.sound.midi">MidiUnavailableException</a></pre>
<div class="block">
<span>获取MIDI输出连接MIDI设备将从MIDI连接传输MIDI数据当应用程序完成使用后返回的发送器必须关闭。</span>
<p> <span>通常返回的发射机实现<code>MidiDeviceTransmitter</code>接口。</span> </p>
<p> <span>使用此方法<code>Transmitter</code>不会打开设备。</span> <span>为了能够使用该设备,必须通过调用<a href="../../../javax/sound/midi/MidiDevice.html#open--"><code>open()</code>明确</a>打开该设备。</span> <span>此外,关闭<code>Transmitter</code>不关闭设备。</span> <span>它必须通过调用<a href="../../../javax/sound/midi/MidiDevice.html#close--"><code>close()</code>显式</a>关闭。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
用于设备的MIDI OUT发射器。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/sound/midi/MidiUnavailableException.html" title="class in javax.sound.midi">MidiUnavailableException</a></code> - 由于资源限制,如果
<code><a href="../../../javax/sound/midi/MidiUnavailableException.html" title="class in javax.sound.midi">MidiUnavailableException</a></code> ,则抛出
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/Transmitter.html#close--"><code>Transmitter.close()</code></a>
</dd>
</dl> </li>
</ul> <a name="getTransmitters--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>getTransmitters</h4> <pre><a href="../../../java/util/List.html" title="interface in java.util">List</a>&lt;<a href="../../../javax/sound/midi/Transmitter.html" title="interface in javax.sound.midi">Transmitter</a>&gt; getTransmitters()</pre>
<div class="block">
<span>返回与此MidiDevice连接的所有当前有效的非闭合发射器。</span>
<span>通过关闭变送器可以将其从设备中取出。</span>
<p> <span>通常返回的发射机实现<code>MidiDeviceTransmitter</code>接口。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个不可修改的开放式发射机列表
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.5
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>