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

240 lines
13 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 VoiceStatus">Class VoiceStatus</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.VoiceStatus</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public class <span class="typeNameLabel">VoiceStatus</span>
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
<div class="block">
<span>A <code>VoiceStatus</code>对象包含有关由<a href="../../../javax/sound/midi/Synthesizer.html" title="javax.sound.midi中的接口"><code>Synthesizer</code></a>生成的其中一个语音的当前状态的<a href="../../../javax/sound/midi/Synthesizer.html" title="javax.sound.midi中的接口">信息</a></span>
<p> <span>MIDI合成器通常能够产生一些最大数量的同时音符也称为声音。</span> <span>声音是连续的单音符流将进入的MIDI音符分配给特定语音的过程称为语音分配。</span> <span>然而语音分配算法和每个声音的内容通常是MIDI合成器的内部并且从外部视图隐藏。</span> <span>当然可以从MIDI信息中学习合成器正在播放的信息也可以推断出声音分配的内容。</span> <span>但是MIDI本身并没有提供一种方法来报告一个合成器分配给哪个声音的音符甚至没有报告合成器能够合成多少个声音。</span> </p>
<p> <span>然而在Java Sound中 <code>Synthesizer</code>类可以通过其<a href="../../../javax/sound/midi/Synthesizer.html#getVoiceStatus--"><code>getVoiceStatus()</code></a>方法公开其语音内容。</span> <span>此行为被推荐但可选;</span> <span>不暴露其语音分配的合成器只需返回一个零长度的数组。</span> <span>一个<code>Synthesizer</code> ,做报告其声音状态应该时刻保持信息的所有的声音,无论是当前发声与否。</span> <span>换句话说,给定类型的<code>Synthesizer</code>总是具有固定数量的声音,等于能够发声的同时音符的最大数量。</span> </p>
<p> <span><a name="description_of_active"></a>如果声音当前未处理MIDI音符则视为无效。</span> <span>当没有给出注释命令时,或接收到的每个音符开启命令已被相应的音符关闭(或通过“所有音符关闭”消息)终止时,语音不活动。</span> <span>例如当能够播放16个同时音符的合成器被告知要播放四音弦时会发生这种情况。</span> <span>在这种情况下,只有四个声音是活跃的(假设以前的音符还在播放)。</span> <span>通常情况下,一个声音的状态被报告为活跃的是产生可听见的声音,但并不总是如此;</span> <span>它取决于仪器的细节(即合成算法)以及音符的持续时间。</span> <span>例如,声音可以合成单手掌的声音。</span> <span>因为这个声音很快就会消失,所以在接收到一个音符关闭消息之前,这个声音可能会听不见。</span> <span>在这种情况下,声音仍然被认为是活跃的,即使没有声音正在产生。</span> </p>
<p> <span>除了主动或非活动状态, <code>VoiceStatus</code>课程还提供显示语音当前MIDI通道银行和程序编号MIDI音符编号和MIDI音量的字段。</span> <span>所有这些都可以在声音的过程中改变。</span> <span>当声音不活动时,这些字段中的每一个都具有未指定的值,因此您应首先检查活动字段。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/Synthesizer.html#getMaxPolyphony--"><code>Synthesizer.getMaxPolyphony()</code></a>
<a href="../../../javax/sound/midi/Synthesizer.html#getVoiceStatus--"><code>Synthesizer.getVoiceStatus()</code></a>
</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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/VoiceStatus.html#active">active</a></span></code>
<div class="block">
指示语音是否正在处理MIDI音符。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/VoiceStatus.html#bank">bank</a></span></code>
<div class="block">
该声音当前正在使用的乐器的银行号码。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/VoiceStatus.html#channel">channel</a></span></code>
<div class="block">
此声音播放的MIDI通道。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/VoiceStatus.html#note">note</a></span></code>
<div class="block">
这个声音正在播放的MIDI音符。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/VoiceStatus.html#program">program</a></span></code>
<div class="block">
该声音当前正在使用的乐器的节目编号。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/VoiceStatus.html#volume">volume</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/VoiceStatus.html#VoiceStatus--">VoiceStatus</a></span>()</code> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<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#clone--">clone</a>, <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="active">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>active</h4> <pre>public boolean active</pre>
<div class="block">
<span>指示语音是否正在处理MIDI音符。</span>
<span>参见active and inactive voices的<a href="#description_of_active">说明</a></span>
</div> </li>
</ul> <a name="channel">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>channel</h4> <pre>public int channel</pre>
<div class="block">
<span>此声音播放的MIDI通道。</span>
<span>如果语音处于活动状态,则该值为基于零的通道号,如果语音处于非活动状态,则该值为未指定。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/midi/MidiChannel.html" title="javax.sound.midi中的接口"><code>MidiChannel</code></a> <a href="../../../javax/sound/midi/VoiceStatus.html#active"><code>active</code></a></span>
</dd>
</dl> </li>
</ul> <a name="bank">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>bank</h4> <pre>public int bank</pre>
<div class="block">
<span>该声音当前正在使用的乐器的银行号码。</span>
<span>这是由MIDI银行选择消息指定的数字;</span>
<span>它不是指一个<code>SoundBank</code>对象。</span>
<span>如果语音处于活动状态则取值范围为0〜16383如果语音处于非活动状态则取值范围为未指定。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/midi/Patch.html" title="javax.sound.midi中的类"><code>Patch</code></a> <a href="../../../javax/sound/midi/Soundbank.html" title="javax.sound.midi中的接口"><code>Soundbank</code></a> <a href="../../../javax/sound/midi/VoiceStatus.html#active"><code>active</code></a> <a href="../../../javax/sound/midi/MidiChannel.html#programChange-int-int-"><code>MidiChannel.programChange(int, int)</code></a></span>
</dd>
</dl> </li>
</ul> <a name="program">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>program</h4> <pre>public int program</pre>
<div class="block">
<span>该声音当前正在使用的乐器的节目编号。</span>
<span>如果语音处于活动状态取值范围为0〜127如果语音不活动则取值范围为1。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/midi/MidiChannel.html#getProgram--"><code>MidiChannel.getProgram()</code></a> <a href="../../../javax/sound/midi/Patch.html" title="javax.sound.midi中的类"><code>Patch</code></a> <a href="../../../javax/sound/midi/VoiceStatus.html#active"><code>active</code></a></span>
</dd>
</dl> </li>
</ul> <a name="note">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>note</h4> <pre>public int note</pre>
<div class="block">
<span>这个声音正在播放的MIDI音符。</span>
<span>活动语音的范围是半音从0到127其中60表示中间C.如果语音不活动,则该值是未指定的。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#noteOn-int-int-"><code>MidiChannel.noteOn(int, int)</code></a>
<a href="../../../javax/sound/midi/VoiceStatus.html#active"><code>active</code></a>
</dd>
</dl> </li>
</ul> <a name="volume">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>volume</h4> <pre>public int volume</pre>
<div class="block">
<span>当前MIDI音量级别的声音。</span>
<span>如果语音处于活动状态取值范围为0〜127如果语音不活动则取值范围为1。</span>
<p> <span>请注意,该值不一定反映这种声音产生的声音的瞬时水平;</span> <span>该水平是许多因素的结果,包括当前仪器和其产生的幅度包络的形状。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/VoiceStatus.html#active"><code>active</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="VoiceStatus--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>VoiceStatus</h4> <pre>public VoiceStatus()</pre> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>