- java.lang.Object
-
- javax.sound.midi.MidiMessage
-
- 实现的所有接口
-
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™使用带符号的字节,因此Java Sound API在表达MIDI数据时使用整数而不是字节。 例如,
getStatus()
的方法MidiMessage
返回MIDI状态字节为整数。 如果您正在处理源自Java Sound之外的MIDI数据,现在编码为带符号字节,则可以使用此转换将字节转换为整数:int i = (int)(byte & 0xFF)
如果您只需要将已知的MIDI字节值作为方法参数传递,则可以使用(例如)十进制或十六进制表示法将其直接表示为整数。 例如,要将“active sensing”状态字节作为第一个参数传递给
ShortMessage
的setMessage(int)
方法,可以将其表示为254或0xFE。
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
MidiMessage(byte[] data)
构造一个新的MidiMessage
。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 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,到元和系统专用消息的任何值。- 结果
- 消息的长度(以字节为单位)
-
-