uTools-Manuals/docs/java/javax/sound/midi/MidiMessage.html

367 lines
16 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="Class MidiMessage">Class MidiMessage</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.sound.midi.MidiMessage</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Implemented Interfaces:
</dt>
<dd>
<span><a href="../../../java/lang/Cloneable.html" title="java.lang中的接口">Cloneable</a></span>
</dd>
</dl>
<dl>
<dt>
已知直接子类:
</dt>
<dd>
<span><a href="../../../javax/sound/midi/MetaMessage.html" title="javax.sound.midi中的类">MetaMessage</a> <a href="../../../javax/sound/midi/ShortMessage.html" title="javax.sound.midi中的类">ShortMessage</a> <a href="../../../javax/sound/midi/SysexMessage.html" title="javax.sound.midi中的类">SysexMessage</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public abstract class <span class="typeNameLabel">MidiMessage</span>
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a>
implements <a href="../../../java/lang/Cloneable.html" title="interface in java.lang">Cloneable</a></pre>
<div class="block">
<span><code>MidiMessage</code>是MIDI消息的基类。</span>
<span>它们不仅包括合成器可以响应的标准MIDI消息还包括可以由音序器程序使用的“元事件”。</span>
<span>有诸如歌词版权速度指示时间和关键签名标记等信息的元事件。有关更多信息请参阅标准MIDI文件1.0规范它是完整MIDI 1.0详细规范的一部分由MIDI制造商协会 <a href="http://www.midi.org">http://www.midi.org</a> )。</span>
<p> <span>基础<code>MidiMessage</code>课程提供对MIDI消息的三种类型的信息的访问</span> </p>
<ul>
<li> <span>消息的状态字节</span> </li>
<li> <span>消息的总长度(以字节为单位)(状态字节加上任何数据字节)</span> </li>
<li> <span>包含完整消息的字节数组</span> </li>
</ul>
<span><code>MidiMessage</code>包括获取但不设置这些值的方法。</span>
<span>设置它们是一个子类责任。</span>
<p> <span><a name="integersVsBytes"></a> MIDI标准以字节表示MIDI数据。</span> <span>但是由于Java <sup>TM</sup>使用带符号字节因此Java Sound API在表达MIDI数据时使用整数而不是字节。</span> <span>例如, <a href="../../../javax/sound/midi/MidiMessage.html#getStatus--"><code>getStatus()</code></a>的方法<code>MidiMessage</code>返回MIDI状态字节为整数。</span> <span>如果您正在处理源自Java Sound之外的MIDI数据现在将其编码为带符号字节则可以使用此转换将字节转换为整数</span> </p>
<center>
<code>int i = (int)(byte &amp; 0xFF)</code>
</center>
<p> <span>如果只需要传递已知的MIDI字节值作为方法参数则可以使用例如十进制或十六进制符号直接表示为整数。</span> <span>例如要将“主动感测”状态字节作为第一个参数传递给ShortMessage的<a href="../../../javax/sound/midi/ShortMessage.html#setMessage-int-"><code>setMessage(int)</code></a>方法可以将其表示为254或0xFE。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/midi/Track.html" title="javax.sound.midi中的类"><code>Track</code></a> <a href="../../../javax/sound/midi/Sequence.html" title="javax.sound.midi中的类"><code>Sequence</code></a> <a href="../../../javax/sound/midi/Receiver.html" title="javax.sound.midi中的接口"><code>Receiver</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- --> </a> <h3>Field Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Field Summary table, listing fields, and an explanation">
<caption>
<span>Fields</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiMessage.html#data">data</a></span></code>
<div class="block">
MIDI信息数据。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiMessage.html#length">length</a></span></code>
<div class="block">
MIDI消息中的字节数包括状态字节和任何数据字节。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiMessage.html#MidiMessage-byte:A-">MidiMessage</a></span>(byte[] data)</code>
<div class="block">
构建一个新的
<code>MidiMessage</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>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</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>abstract <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiMessage.html#clone--">clone</a></span>()</code>
<div class="block">
创建与该对象相同的类和新内容相同的新对象。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiMessage.html#getLength--">getLength</a></span>()</code>
<div class="block">
以字节获得MIDI消息的总长度。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiMessage.html#getMessage--">getMessage</a></span>()</code>
<div class="block">
获取MIDI消息数据。
</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/MidiMessage.html#getStatus--">getStatus</a></span>()</code>
<div class="block">
获取MIDI消息的状态字节。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiMessage.html#setMessage-byte:A-int-">setMessage</a></span>(byte[] data, int length)</code>
<div class="block">
设置MIDI信息的数据。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../../java/lang/Object.html#notify--">notify</a>, <a href="../../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../../java/lang/Object.html#toString--">toString</a>, <a href="../../../java/lang/Object.html#wait--">wait</a>, <a href="../../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- --> </a> <h3>字段详细信息</h3> <a name="data">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>data</h4> <pre>protected byte[] data</pre>
<div class="block">
<span>MIDI信息数据。</span>
<span>第一个字节是消息的状态字节;</span>
<span>直到消息长度的后续字节是此消息的数据字节。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiMessage.html#getLength--"><code>getLength()</code></a>
</dd>
</dl> </li>
</ul> <a name="length">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>length</h4> <pre>protected int length</pre>
<div class="block">
MIDI消息中的字节数包括状态字节和任何数据字节。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiMessage.html#getLength--"><code>getLength()</code></a>
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="MidiMessage-byte:A-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>MidiMessage</h4> <pre>protected MidiMessage(byte[] data)</pre>
<div class="block">
<span>构造一个新的<code>MidiMessage</code></span>
<span>这个受保护的构造函数由具体的子类调用它应该确保数据数组指定一个完整的有效的MIDI消息。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>data</code> - 包含完整消息的字节数组。</span>
<span>可以使用<code>setMessage</code>方法更改消息数据。</span>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiMessage.html#setMessage-byte:A-int-"><code>setMessage(byte[], int)</code></a>
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="setMessage-byte:A-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setMessage</h4> <pre>protected void setMessage(byte[] data,
int length)
throws <a href="../../../javax/sound/midi/InvalidMidiDataException.html" title="class in javax.sound.midi">InvalidMidiDataException</a></pre>
<div class="block">
<span>设置MIDI信息的数据。</span>
<span>该受保护的方法由具体的子类调用它应该确保数据数组指定一个完整有效的MIDI消息。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>data</code> - MIDI信息中的数据字节
</dd>
<dd>
<code>length</code> - 数据字节数组中的字节数
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/sound/midi/InvalidMidiDataException.html" title="class in javax.sound.midi">InvalidMidiDataException</a></code> - 如果参数值未指定有效的MIDI元消息
</dd>
</dl> </li>
</ul> <a name="getMessage--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getMessage</h4> <pre>public byte[] getMessage()</pre>
<div class="block">
<span>获取MIDI消息数据。</span>
<span>返回的字节数组的第一个字节是消息的状态字节。</span>
<span>直到消息长度的任何后续字节是数据字节。</span>
<span>字节数组的长度可以大于实际消息的长度;</span>
<span>消息的总长度(以字节为单位)由<code><a href="../../../javax/sound/midi/MidiMessage.html#getLength--"><code>getLength()</code></a></code>方法报告。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
该字节数组包含完整的
<code>MidiMessage</code>数据
</dd>
</dl> </li>
</ul> <a name="getStatus--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getStatus</h4> <pre>public int getStatus()</pre>
<div class="block">
<span>获取MIDI消息的状态字节。</span>
<span>状态“byte”表示为整数;</span>
<span>参见<a href="#integersVsBytes">discussion</a>中的<code>MidiMessage</code>类描述。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
该事件的状态字节的整数表示
</dd>
</dl> </li>
</ul> <a name="getLength--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getLength</h4> <pre>public int getLength()</pre>
<div class="block">
<span>以字节获得MIDI消息的总长度。</span>
<span>MIDI消息由一个状态字节和零个或多个数据字节组成。</span>
<span>返回值的范围从系统实时消息的1到信道消息的2或3到元和系统独占消息的任何值。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
消息的长度(以字节为单位)
</dd>
</dl> </li>
</ul> <a name="clone--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>clone</h4> <pre>public abstract <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> clone()</pre>
<div class="block">
创建与该对象相同的类和新内容相同的新对象。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">重写:</span>
</dt>
<dd>
<code><a href="../../../java/lang/Object.html#clone--">clone</a></code>在类别
<code><a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
这个实例的一个克隆。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../java/lang/Cloneable.html" title="java.lang中的接口"><code>Cloneable</code></a></span>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>