public abstract class MidiMessage extends Object implements Cloneable
MidiMessage
是MIDI消息的基类。
它们不仅包括合成器可以响应的标准MIDI消息,还包括可以由音序器程序使用的“元事件”。
有诸如歌词,版权,速度指示,时间和关键签名,标记等信息的元事件。有关更多信息,请参阅标准MIDI文件1.0规范,它是完整MIDI 1.0详细规范的一部分,由MIDI制造商协会( http://www.midi.org )。
基础MidiMessage
课程提供对MIDI消息的三种类型的信息的访问:
MidiMessage
包括获取但不设置这些值的方法。
设置它们是一个子类责任。
MIDI标准以字节表示MIDI数据。 但是,由于Java TM使用带符号字节,因此Java Sound API在表达MIDI数据时使用整数而不是字节。 例如, getStatus()
的方法MidiMessage
返回MIDI状态字节为整数。 如果您正在处理源自Java Sound之外的MIDI数据,现在将其编码为带符号字节,则可以使用此转换将字节转换为整数:
int i = (int)(byte & 0xFF)
如果只需要传递已知的MIDI字节值作为方法参数,则可以使用(例如)十进制或十六进制符号直接表示为整数。 例如,要将“主动感测”状态字节作为第一个参数传递给ShortMessage的setMessage(int)
方法,可以将其表示为254或0xFE。
Modifier and Type | Field and Description |
---|---|
protected byte[] |
data
MIDI信息数据。
|
protected int |
length
MIDI消息中的字节数,包括状态字节和任何数据字节。
|
Modifier | Constructor and Description |
---|---|
protected |
MidiMessage(byte[] data)
构建一个新的
MidiMessage 。
|
Modifier and Type | Method and Description |
---|---|
abstract Object |
clone()
创建与该对象相同的类和新内容相同的新对象。
|
int |
getLength()
以字节获得MIDI消息的总长度。
|
byte[] |
getMessage()
获取MIDI消息数据。
|
int |
getStatus()
获取MIDI消息的状态字节。
|
protected void |
setMessage(byte[] data, int length)
设置MIDI信息的数据。
|
protected byte[] data
getLength()
protected int length
getLength()
protected MidiMessage(byte[] data)
MidiMessage
。
这个受保护的构造函数由具体的子类调用,它应该确保数据数组指定一个完整的有效的MIDI消息。
data
- 包含完整消息的字节数组。
可以使用setMessage
方法更改消息数据。
setMessage(byte[], int)
protected void setMessage(byte[] data, int length) throws InvalidMidiDataException
data
- MIDI信息中的数据字节
length
- 数据字节数组中的字节数
InvalidMidiDataException
- 如果参数值未指定有效的MIDI元消息
public byte[] getMessage()
getLength()
方法报告。
MidiMessage
数据
public int getStatus()
public int getLength()