- java.lang.Object
-
- javax.sound.midi.MidiMessage
-
- All Implemented Interfaces:
-
Cloneable
- 已知直接子类:
-
MetaMessage
,ShortMessage
,SysexMessage
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 Constructor 描述 protected
MidiMessage(byte[] data)
构造新的MidiMessage
。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract Object
clone()
创建与该对象相同的类和新内容相同的新对象。int
getLength()
以字节获得MIDI消息的总长度。byte[]
getMessage()
获取MIDI消息数据。int
getStatus()
获取MIDI消息的状态字节。protected void
setMessage(byte[] data, int length)
设置MIDI信息的数据。
-
-
-
字段详细信息
-
data
protected byte[] data
MIDI信息数据。 第一个字节是消息的状态字节; 直到消息长度的后续字节是此消息的数据字节。- 另请参见:
-
getLength()
-
length
protected int length
MIDI消息中的字节数,包括状态字节和任何数据字节。- 另请参见:
-
getLength()
-
-
构造方法详细信息
-
MidiMessage
protected MidiMessage(byte[] data)
构造新的MidiMessage
。 这个受保护的构造函数由具体的子类调用,它应该确保数据数组指定一个完整的有效的MIDI消息。- 参数
-
data
- 包含完整消息的字节数组。 可以使用setMessage
方法更改消息数据。 - 另请参见:
-
setMessage(byte[], int)
-
-
方法详细信息
-
setMessage
protected void setMessage(byte[] data, int length) throws InvalidMidiDataException
设置MIDI信息的数据。 该受保护的方法由具体的子类调用,它应该确保数据数组指定一个完整有效的MIDI消息。- 参数
-
data
- MIDI消息中的数据字节 -
length
- 数据字节数组中的字节数 - 异常
-
InvalidMidiDataException
- 如果参数值未指定有效的MIDI元消息
-
getMessage
public byte[] getMessage()
获取MIDI消息数据。 返回的字节数组的第一个字节是消息的状态字节。 直到消息长度的任何后续字节是数据字节。 字节数组的长度可以大于实际消息的长度; 消息的总长度(以字节为单位)由getLength()
方法报告。- 结果
-
该字节数组包含完整的
MidiMessage
数据
-
getStatus
public int getStatus()
- 结果
- 该事件的状态字节的整数表示
-
getLength
public int getLength()
以字节获得MIDI消息的总长度。 MIDI消息由一个状态字节和零个或多个数据字节组成。 返回值的范围从系统实时消息的1到通道消息的2或3,到元和系统独占消息的任何值。- 结果
- 消息的长度(以字节为单位)
-
-