mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-02 06:32:44 +08:00
240 lines
13 KiB
HTML
240 lines
13 KiB
HTML
<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> |