- java.lang.Object
-
- javax.sound.midi.MidiMessage
-
- javax.sound.midi.MetaMessage
-
- All Implemented Interfaces:
-
Cloneable
public class MetaMessage extends MidiMessage
AMetaMessage
是对合成器无意义的MidiMessage
,但可以存储在MIDI文件中并由音序器程序解释。 (见MidiMessage
类描述中的讨论)。标准MIDI文件规范定义了各种类型的元事件,如序列号,歌词,提示点和设置速度。 还有诸如歌词,版权,速度指示,时间和键签名,标记等信息的元事件。有关更多信息,请参阅标准MIDI文件1.0规范,它是Complete MIDI 1.0详细规范的一部分,由“ MIDI制造商协会( http://www.midi.org )。当数据正被使用MIDI线协议传送的,一
ShortMessage
与状态值0xFF
表示系统重置消息。 在MIDI文件中,相同的状态值表示一个MetaMessage
。 元消息的类型通过状态字节0xFF
的第一个字节彼此区分开。 随后的字节是数据字节。 与系统专用消息一样,根据MetaMessage
的类型,存在任意数量的数据字节数。- 另请参见:
-
MetaEventListener
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
META
MetaMessage
(0xFF或255)的状态字节,用于MIDI文件。-
Fields inherited from class javax.sound.midi.MidiMessage
data, length
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 MetaMessage()
构造新的MetaMessage
。protected
MetaMessage(byte[] data)
构造新的MetaMessage
。MetaMessage(int type, byte[] data, int length)
构造新的MetaMessage
并设置消息参数。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Object
clone()
创建与该对象相同的类和新内容相同的新对象。byte[]
getData()
获取元消息的数据副本。int
getType()
获得MetaMessage
的类型。void
setMessage(int type, byte[] data, int length)
设置MetaMessage
的消息参数。-
Methods inherited from class javax.sound.midi.MidiMessage
getLength, getMessage, getStatus, setMessage
-
-
-
-
构造方法详细信息
-
MetaMessage
public MetaMessage()
-
MetaMessage
public MetaMessage(int type, byte[] data, int length) throws InvalidMidiDataException
构造新的MetaMessage
并设置消息参数。 可以使用setMessage
方法更改消息的内容。- 参数
-
type
- 元消息类型(必须小于128) -
data
- MIDI消息中的数据字节 -
length
-data
字节数组中的字节数; 应为非负数,小于等于data.length
- 异常
-
InvalidMidiDataException
- 如果参数值未指定有效的MIDI元消息 - 从以下版本开始:
- 1.7
- 另请参见:
-
setMessage(int, byte[], int)
,getType()
,getData()
-
MetaMessage
protected MetaMessage(byte[] data)
构造新的MetaMessage
。- 参数
-
data
- 包含完整消息的字节数组。 可以使用setMessage
方法更改消息数据。 - 另请参见:
-
setMessage(int, byte[], int)
-
-
方法详细信息
-
setMessage
public void setMessage(int type, byte[] data, int length) throws InvalidMidiDataException
设置MetaMessage
的消息参数。 由于元消息只允许一个状态字节值0xFF
,因此不需要在此处指定。 致电getStatus
返回0xFF
所有元消息。type
参数应为type
状态字节MetaMessage
字节的MetaMessage
。 该data
参数应包含的所有后续字节MetaMessage
。 换句话说,指定MetaMessage
的类型的字节不被视为数据字节。- 参数
-
type
- 元消息类型(必须小于128) -
data
- MIDI信息中的数据字节 -
length
-data
字节数组中的字节数 - 异常
-
InvalidMidiDataException
- 如果参数值没有指定有效的MIDI元消息
-
getType
public int getType()
获得MetaMessage
的类型。- 结果
-
一个表示
MetaMessage
类型的整数
-
getData
public byte[] getData()
获取元消息的数据副本。 返回的字节数组不包括状态字节或消息长度数据。 元消息的数据长度是数组的长度。 请注意,整个消息的长度包括状态字节和元消息类型字节,因此可能比返回的数组长。- 结果
- 数组包含元消息数据
- 另请参见:
-
MidiMessage.getLength()
-
clone
public Object clone()
创建与该对象相同的类和新内容相同的新对象。- Specified by:
-
clone
中的MidiMessage
- 结果
- 这个实例的一个克隆
- 另请参见:
-
Cloneable
-
-