public class SysexMessage extends MidiMessage
SysexMessage
对象代表一个MIDI系统专有信息。
当一个系统的独家消息从MIDI文件中读取,它总是有一个定义的长度。从系统的独家消息从MIDI文件数据应存放在一个SysexMessage
作为阵列的数据如下:系统专用信息状态字节(0xf0或0xf7),所有的消息数据的字节,并独家结束标志(0xf7)。因此,长度由SysexMessage
报道对象是系统专用数据再加上两个长度:为一个专属的结束标志的状态字节一个字节。
按照标准的MIDI文件规范,两状态字节的值从MIDI文件中读取一SysexMessage
是合法的:
当java的声音是用来处理正在使用MIDI线协议接收系统专有数据,应该将数据在一个或多个SysexMessages
。在这种情况下,系统的专有数据的长度是事先不知道的;系统的专用数据的最后是专属标志结束标记(0xf7)在MIDI线的字节流。
SysexMessage
对象所应具有的状态值0xf0。如果此消息包含消息的所有系统专用的数据,它应该结束的状态字节0xf7(EOX)。否则,额外的系统专有的数据应该在一个或多个0xf7
SysexMessages
发送状态值。包含为系统专用信息数据的最后终结在价值0xf7的
SysexMessage
(EOX)标记系统的独家消息结束。
如果从SysexMessages
对象系统专有的数据被使用MIDI线协议传输,只有最初的0xf0状态字节,系统专用数据本身,并最终0xf7(EOX)字节应传播;任何0xf7状态字节用于表示一个SysexMessage
包含持续系统专有的数据不应该通过MIDI线协议传播。
Modifier and Type | Field and Description |
---|---|
static int |
SPECIAL_SYSTEM_EXCLUSIVE
特殊系统专有信息状态字节(0xf7,或247),这是用于MIDI文件。
|
static int |
SYSTEM_EXCLUSIVE
系统专用信息状态字节(0xf0,或240)。
|
data, length
Modifier | Constructor and Description |
---|---|
|
SysexMessage()
构建了一种新的
SysexMessage 。
|
protected |
SysexMessage(byte[] data)
构建了一种新的
SysexMessage 。
|
|
SysexMessage(byte[] data, int length)
构建了一种新的
SysexMessage 和设置消息的数据。
|
|
SysexMessage(int status, byte[] data, int length)
构建了一种新的
SysexMessage 和设置消息的数据。
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
创建同一个类的新对象,并具有与此对象相同的内容。
|
byte[] |
getData()
获取系统独占消息的数据的副本。
|
void |
setMessage(byte[] data, int length)
设置系统独占消息的数据。
|
void |
setMessage(int status, byte[] data, int length)
设置系统独占消息的数据。
|
getLength, getMessage, getStatus
public static final int SYSTEM_EXCLUSIVE
public static final int SPECIAL_SYSTEM_EXCLUSIVE
public SysexMessage()
SysexMessage
。该消息的内容是保证指定一个有效的MIDI消息。随后,您可以设定消息内容的使用
setMessage
方法。
setMessage(byte[], int)
public SysexMessage(byte[] data, int length) throws InvalidMidiDataException
SysexMessage
和设置消息的数据。数据数组的第一个字节必须是一个有效的系统独占状态字节(0xf0或0xf7)。短信的内容可以用一个
setMessage
方法改变的。
data
-系统专有信息数据包括状态字节
length
-数组中有效的消息数据的长度,包括状态字节;它应该是非负且小于或等于
data.length
InvalidMidiDataException
-如果参数值没有指定一个有效的MIDI的元信息。
setMessage(byte[], int)
,
setMessage(int, byte[], int)
,
getData()
public SysexMessage(int status, byte[] data, int length) throws InvalidMidiDataException
SysexMessage
和设置消息的数据。短信的内容可以用一个
setMessage
方法改变的。
status
-消息状态字节;它必须是一个有效的系统独占状态字节(0xf0或0xf7)
data
-系统独家消息数据(无状态字节)
length
-数组中有效的消息数据的长度;它应该是非负且小于或等于
data.length
InvalidMidiDataException
-如果参数值没有指定一个有效的MIDI的元信息。
setMessage(byte[], int)
,
setMessage(int, byte[], int)
,
getData()
protected SysexMessage(byte[] data)
SysexMessage
。
data
-包含完整的信息的字节数组。消息数据可以使用
setMessage
方法改变。
setMessage(byte[], int)
public void setMessage(byte[] data, int length) throws InvalidMidiDataException
setMessage
方法重写,继承类
MidiMessage
data
独家消息数据的系统
length
-数组中有效的消息数据的长度,包括状态字节。
InvalidMidiDataException
-如果参数值没有指定一个有效的MIDI的元信息
public void setMessage(int status, byte[] data, int length) throws InvalidMidiDataException
status
-消息状态字节(0xf0或0xf7)
data
独家消息数据的系统
length
-数组中有效的消息数据的长度
InvalidMidiDataException
如果状态字节用于存储信息是无效的
public byte[] getData()
public Object clone()
clone
方法重写,继承类
MidiMessage
Cloneable
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.