- java.lang.Object
-
- javax.sound.midi.MidiMessage
-
- javax.sound.midi.SysexMessage
-
- 实现的所有接口
-
Cloneable
public class SysexMessage extends MidiMessage
SysexMessage
对象表示MIDI系统专用消息。从MIDI文件读取系统专用消息时,它始终具有已定义的长度。 来自MIDI文件的系统专有消息的数据应存储在
SysexMessage
的数据数组中,如下所示:系统专用消息状态字节(0xF0或0xF7),所有消息数据字节,最后是独占结束标志( 0xF7)。 因此,SysexMessage
对象报告的长度是系统独占数据加上两个的长度:状态字节为一个字节,独占结束标志为一个字节。根据标准MIDI文件规范,两个状态字节值对于从MIDI文件读取的
SysexMessage
是合法的:- 0xF0:系统独占消息(与MIDI线协议相同)
- 0xF7:特殊系统独占消息
SysexMessages
。 在这种情况下,预先不知道系统专用数据的长度; 系统独占数据的末尾由MIDI有线字节流中的独占结束标志(0xF7)标记。- 0xF0:系统独占消息(与MIDI线协议相同)
- 0xF7:独占结束(EOX)
SysexMessage
对象应具有状态值0xF0。 如果此消息包含消息的所有系统独占数据,则它应以状态字节0xF7(EOX)结束。 否则,应在一个或多个状态值为0xF7的SysexMessages
发送附加系统专用数据。 包含系统独占消息的最后一个数据的SysexMessage
应以值0xF7(EOX)结束,以标记系统独占消息的结束。如果使用MIDI线协议传输来自
SysexMessages
对象的系统专有数据,SysexMessages
应传播初始0xF0状态字节,系统独占数据本身和最终0xF7(EOX)字节; 任何0xF7状态字节用于指示SysexMessage
包含连续系统专用数据不应通过MIDI线协议传播。
-
-
字段汇总
字段 变量和类型 字段 描述 static int
SPECIAL_SYSTEM_EXCLUSIVE
特殊系统专用消息(0xF7或247)的状态字节,用于MIDI文件。static int
SYSTEM_EXCLUSIVE
系统独占消息的状态字节(0xF0或240)。-
声明的属性在类 javax.sound.midi.MidiMessage
data, length
-
-
构造方法摘要
构造方法 变量 构造器 描述 SysexMessage()
构造一个新的SysexMessage
。protected
SysexMessage(byte[] data)
构造一个新的SysexMessage
。SysexMessage(byte[] data, int length)
构造一个新的SysexMessage
并设置消息的数据。SysexMessage(int status, byte[] data, int length)
构造一个新的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
-
-
-
-
字段详细信息
-
SYSTEM_EXCLUSIVE
public static final int SYSTEM_EXCLUSIVE
系统独占消息的状态字节(0xF0或240)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
SPECIAL_SYSTEM_EXCLUSIVE
public static final int SPECIAL_SYSTEM_EXCLUSIVE
特殊系统专用消息(0xF7或247)的状态字节,用于MIDI文件。 它与END_OF_EXCLUSIVE具有相同的值,用于实时“MIDI线”协议。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
-
构造方法详细信息
-
SysexMessage
public SysexMessage()
构造一个新的SysexMessage
。 保证新消息的内容指定有效的MIDI消息。 随后,您可以使用setMessage
方法之一设置消息的内容。- 另请参见:
-
setMessage(byte[], int)
-
SysexMessage
public SysexMessage(byte[] data, int length) throws InvalidMidiDataException
构造一个新的SysexMessage
并设置消息的数据。 数据数组的第一个字节必须是有效的系统独占状态字节(0xF0或0xF7)。 可以使用setMessage
方法之一更改消息的内容。- 参数
-
data
- 包含状态字节的系统专用消息数据 -
length
- 数组中有效消息数据的长度,包括状态字节; 它应该是非负的且小于或等于data.length
- 异常
-
InvalidMidiDataException
- 如果参数值未指定有效的MIDI元消息 - 从以下版本开始:
- 1.7
- 另请参见:
-
setMessage(byte[], int)
,setMessage(int, byte[], int)
,getData()
-
SysexMessage
public SysexMessage(int status, byte[] data, int length) throws InvalidMidiDataException
构造一个新的SysexMessage
并设置消息的数据。 可以使用setMessage
方法之一更改消息的内容。- 参数
-
status
- 消息的状态字节; 它必须是有效的系统独占状态字节(0xF0或0xF7) -
data
- 系统独占消息数据(没有状态字节) -
length
- 数组中有效消息数据的长度; 它应该是非负的且小于或等于data.length
- 异常
-
InvalidMidiDataException
- 如果参数值未指定有效的MIDI系统专用消息 - 从以下版本开始:
- 1.7
- 另请参见:
-
setMessage(byte[], int)
,setMessage(int, byte[], int)
,getData()
-
SysexMessage
protected SysexMessage(byte[] data)
构造一个新的SysexMessage
。- 参数
-
data
- 包含完整消息的字节数组。 可以使用setMessage
方法更改消息数据。 - 另请参见:
-
setMessage(byte[], int)
-
-
方法详细信息
-
setMessage
public void setMessage(byte[] data, int length) throws InvalidMidiDataException
设置系统专用消息的数据。 数据数组的第一个字节必须是有效的系统独占状态字节(0xF0或0xF7)。- 重写:
-
setMessage
在类MidiMessage
- 参数
-
data
- 系统专用消息数据 -
length
- 数组中有效消息数据的长度,包括状态字节 - 异常
-
InvalidMidiDataException
- 如果参数值未指定有效的MIDI系统专用消息
-
setMessage
public void setMessage(int status, byte[] data, int length) throws InvalidMidiDataException
设置系统专用消息的数据。- 参数
-
status
- 消息的状态字节(0xF0或0xF7) -
data
- 系统专用消息数据 -
length
- 数组中有效消息数据的长度 - 异常
-
InvalidMidiDataException
- 如果状态字节对于系统专用消息无效
-
getData
public byte[] getData()
获取系统专用消息的数据副本。 返回的字节数组不包括状态字节。- 结果
- 包含系统专有消息数据的数组
-
clone
public Object clone()
创建与此对象具有相同类并具有相同内容的新对象。- Specified by:
-
clone
在类MidiMessage
- 结果
- 这个实例的克隆
- 另请参见:
-
Cloneable
-
-