Module  java.desktop
软件包  javax.sound.midi

Class MetaMessage

  • All Implemented Interfaces:
    Cloneable


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

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

    另请参见:
    MetaEventListener
    • 字段详细信息

      • META

        public static final int META
        MetaMessage (0xFF或255)的状态字节,用于MIDI文件。 它具有与SYSTEM_RESET相同的值,用于实时“MIDI线”协议。
        另请参见:
        MidiMessage.getStatus()Constant Field Values
    • 构造方法详细信息

      • 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