|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |