java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

javax.sound.midi
类 VoiceStatus

java.lang.Object
  继承者 javax.sound.midi.VoiceStatus

public class VoiceStatus
extends Object

VoiceStatus 对象包含有关由 Synthesizer 生成的某个声音当前状态的信息。

MIDI 合成器通常能够生成最多的同步发声音符数,也称为声音。声音是连续的单音符流,将到来的 MIDI 音符分配给特定声音的过程即所谓的声音分配。但是,声音分配算法和每个声音的内容通常只存在于 MIDI 合成器内部,对外隐藏。当然,我们可以从 MIDI 消息了解合成器正在演奏的音符,并可能推断出一些声音中的音符分配信息。但是 MIDI 本身并未提供一种报告合成器将哪个音符分配给哪种声音的方式,甚至都未报告合成器能够合成的声音数。

但在 Java Sound 中,Synthesizer 类可通过其 getVoiceStatus() 方法公开其声音的内容。建议使用此行为,但这是可选的;不公开其声音分配的合成器仅返回一个长度为零的数组。确实报告其声音状态的 Synthesizer 应对其所有声音一直维护此信息,无论该声音当前是否发出。换句话说,给定类型的 Synthesizer 始终具有固定数量的声音,等于它能够发声的最大同步音符数。

如果该声音当前不处理 MIDI 音符,则视其为非活动的。在未给定任何 note-on 命令时,或在接收到的每个 note-on 命令已通过相应的 note-off(或通过一个“关闭所有音符”消息)中止时,该声音为非活动的。例如,发生这种情形的条件是:让一个能够演奏 16 个同步发声音符的合成器演奏一个四音符和弦;这种情况下,只有四种声音为活动的(假定没有演奏以前的音符)。通常,一个状态报告为活动的声音生成可听到的声音,但是并非总是如此;这还取决于乐器的细节(即合成算法)和音符已持续的时间。例如,一个声音可合成单击掌声。由于此声消失速度太快,所以它可能在收到 note-off 消息前变得无法听到。此时,该声音仍视为活动的,即使当前不生成任何声音。

除了活动或非活动状态,VoiceStatus 类还提供了显示声音当前 MIDI 通道、库和程序号、MIDI 音符号和 MIDI 音量的字段。所有这些内容都可在声音过程中更改。声音为非活动时,这些字段中每个字段都有一个未指定的值,所以应首先检查活动的字段。

另请参见:
Synthesizer.getMaxPolyphony(), Synthesizer.getVoiceStatus()

字段摘要
 boolean active
          指示声音当前是否正在处理 MIDI 音符。
 int bank
          此声音当前正在使用的乐器的库号。
 int channel
          在其上演奏此声音的 MIDI 通道。
 int note
          此声音正在演奏的 MIDI 音符。
 int program
          此声音当前正在使用的乐器的程序号。
 int volume
          声音的当前 MIDI 音量级。
 
构造方法摘要
VoiceStatus()
           
 
方法摘要
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

active

public boolean active
指示声音当前是否正在处理 MIDI 音符。请参见活动和非活动声音的解释。


channel

public int channel
在其上演奏此声音的 MIDI 通道。如果声音为活动的,则值为从零开始的通道号,如果声音为非活动的,则未指定该值。

另请参见:
MidiChannel, active

bank

public int bank
此声音当前正在使用的乐器的库号。这是一个由 MIDI 库选择消息指定的号;它并不指一个 SoundBank 对象。如果声音为活动的,则值的范围为 0 到 16383,如果声音为非活动的,则未指定该值。

另请参见:
Patch, Soundbank, active, MidiChannel.programChange(int, int)

program

public int program
此声音当前正在使用的乐器的程序号。如果声音为活动的,则值的范围为 0 到 127,如果声音为非活动的,则未指定该值。

另请参见:
MidiChannel.getProgram(), Patch, active

note

public int note
此声音正在演奏的 MIDI 音符。活动声音的范围从 0 到 127,以半音为单位,60 指中央 C(Middle C)。如果声音为非活动的,则未指定该值。

另请参见:
MidiChannel.noteOn(int, int), active

volume

public int volume
声音的当前 MIDI 音量级。如果声音为活动的,则值的范围为 0 到 127,如果声音为非活动的,则未指定该值。

注意,此值不一定反映此声音所发声的瞬间级;该级是诸多因素产生的结果,包括当前乐器及其生成的振幅包络线的形状。

另请参见:
active
构造方法详细信息

VoiceStatus

public VoiceStatus()

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策