模块  java.desktop
软件包  javax.sound.midi

Class MetaMessage

  • 实现的所有接口
    Cloneable

    public class MetaMessage
    extends MidiMessage
    MetaMessageMidiMessage ,对合成器没有意义,但可以存储在MIDI文件中并由音序器程序解释。 (请参阅MidiMessage类说明中的讨论。)标准MIDI文件规范定义了各种类型的元事件,例如序列号,歌词,提示点和设置速度。 还有歌词,版权,节奏指示,时间和关键签名,标记等信息的元事件。有关更多信息,请参阅标准MIDI文件1.0规范,该规范是由完整MIDI 1.0详细规范发布的。 MIDI制造商协会( http://www.midi.org )。

    当数据正被使用MIDI线协议传送的,一ShortMessage与状态值0xFF表示系统重置消息。 在MIDI文件中,此相同的状态值表示MetaMessage 元消息的类型通过状态字节0xFF的第一个字节彼此区分。 后续字节是数据字节。 与系统专用消息一样,有任意数量的数据字节,具体取决于MetaMessage的类型。

    另请参见:
    MetaEventListener
    • 构造方法详细信息

      • MetaMessage

        public MetaMessage()
        构造一个新的MetaMessage 此处未设置消息内容; 使用setMessage随后设置它们。
      • 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