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
类 SysexMessage

java.lang.Object
  继承者 javax.sound.midi.MidiMessage
      继承者 javax.sound.midi.SysexMessage
所有已实现的接口:
Cloneable

public class SysexMessage
extends MidiMessage

表示 MIDI 系统独占消息 SysexMessage 对象。

当从 MIDI 文件中读取系统独占消息时,它通常具有已定义的长度。取自 MIDI 文件的系统独占消息的数据应存储在 SysexMessage 的数据数组中,如下所示:系统独占消息状态字节(0xF0 或 0xF7),所有消息数据字节和最后的独占结束标志 (0xF7)。因此,SysexMessage 对象报告的长度为系统独占数据的长度加上两个字节:一个字节为状态字节,另一个为独占结束标志。

按照 Standard MIDI Files 规范的规定,有两个状态字节值对于从 MIDI 文件读取的 SysexMessage 是合法的:

  • 0xF0:系统独占消息(与 MIDI 导线协议相同)
  • 0xF7:特殊系统独占消息

当使用 Java Sound 处理通过 MIDI 导线协议接收的系统独占数据时,它应将数据置于一个或多个 SysexMessage 中。在这种情况下,预先不知道系统独占数据的长度;系统独占数据的结束由 MIDI 导线字节流中的一个独占结束标志 (0xF7) 所标记。

  • 0xF0:系统独占消息(与 MIDI 导线协议相同)
  • 0xF7:独占结束 (EOX)
第一个包含用于特定系统独占消息数据的 SysexMessage 对象应有状态值 0xF0。如果此消息包含该消息的所有系统独占数据,则它应以状态字节 0xF7 (EOX) 结束。否则,应在一个或多个 SysexMessage 中发送其他的系统独占数据,状态值为 0xF7。包含系统独占消息最后数据的 SysexMessage 应以 0xF7 (EOX) 值结束,以标记系统独占消息的结束。

如果使用 MIDI 导线协议传输取自 SysexMessage 对象的系统独占数据,则只有初始 0xF0 状态字节、系统独占数据本身和最终的 0xF7 (EOX) 字节应该被传播;任何用于指示 SysexMessage 包含连续系统独占数据的 0xF7 状态字节都不应该通过 MIDI 导线协议被传播。


字段摘要
static int SPECIAL_SYSTEM_EXCLUSIVE
          用于 SPECIAL_SYSTEM_EXCLUSIVE 消息的状态字节(0xF7 或 247),供在 MIDI 文件中使用。
static int SYSTEM_EXCLUSIVE
          用于 SYSTEM_EXCLUSIVE 消息的状态字节(0xF0 或 240)。
 
从类 javax.sound.midi.MidiMessage 继承的字段
data, length
 
构造方法摘要
  SysexMessage()
          构造一个新的 SysexMessage
protected SysexMessage(byte[] data)
          构造一个新的 SysexMessage
 
方法摘要
 Object clone()
          创建一个与此对象具有相同类和相同内容的新对象。
 byte[] getData()
          获得系统独占消息数据的副本。
 void setMessage(byte[] data, int length)
          为系统独占消息设置数据。
 void setMessage(int status, byte[] data, int length)
          为系统独占消息设置数据。
 
从类 javax.sound.midi.MidiMessage 继承的方法
getLength, getMessage, getStatus
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

SYSTEM_EXCLUSIVE

public static final int SYSTEM_EXCLUSIVE
用于 SYSTEM_EXCLUSIVE 消息的状态字节(0xF0 或 240)。

另请参见:
MidiMessage.getStatus(), 常量字段值

SPECIAL_SYSTEM_EXCLUSIVE

public static final int SPECIAL_SYSTEM_EXCLUSIVE
用于 SPECIAL_SYSTEM_EXCLUSIVE 消息的状态字节(0xF7 或 247),供在 MIDI 文件中使用。它与 END_OF_EXCLUSIVE 具有相同的值,用于实时 "MIDI wire" 协议中。

另请参见:
MidiMessage.getStatus(), 常量字段值
构造方法详细信息

SysexMessage

public SysexMessage()
构造一个新的 SysexMessage。可保证新消息的内容指定一个有效的 MIDI 消息。之后,可以使用 setMessage 方法之一来设置消息的内容。

另请参见:
setMessage(byte[], int)

SysexMessage

protected SysexMessage(byte[] data)
构造一个新的 SysexMessage

参数:
data - 包含完整消息的 byte 数组。使用 setMessage 方法可更改消息数据。
另请参见:
setMessage(byte[], int)
方法详细信息

setMessage

public void setMessage(byte[] data,
                       int length)
                throws InvalidMidiDataException
为系统独占消息设置数据。数据数组的第一个字节必须是一个有效的系统独占状态字节(0xF0 或 0xF7)。

覆盖:
MidiMessage 中的 setMessage
参数:
data - 系统独占消息数据
length - 数组中有效消息数据的长度,包含状态字节。
抛出:
InvalidMidiDataException

setMessage

public void setMessage(int status,
                       byte[] data,
                       int length)
                throws InvalidMidiDataException
为系统独占消息设置数据。

参数:
status - 消息的状态字节(0xF0 或 0xF7)
data - 系统独占消息数据
length - 数组中有效消息数据的长度
抛出:
InvalidMidiDataException

getData

public byte[] getData()
获得系统独占消息数据的副本。返回的 byte 数组不包括状态字节。

返回:
包含系统独占消息数据的数组。

clone

public Object clone()
创建一个与此对象具有相同类和相同内容的新对象。

指定者:
MidiMessage 中的 clone
返回:
此实例的一个副本。
另请参见:
Cloneable

JavaTM 2 Platform
Standard Ed. 5.0

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

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