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

Class MidiMessage

  • 实现的所有接口
    Cloneable
    已知直接子类:
    MetaMessageShortMessageSysexMessage

    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”状态字节作为第一个参数传递给ShortMessagesetMessage(int)方法,可以将其表示为254或0xFE。

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

      • 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()
        获得MIDI消息的状态字节。 状态“byte”表示为整数; 请参阅4815732621908中的MidiMessage类描述。
        结果
        此事件的状态字节的整数表示
      • getLength

        public int getLength()
        获得MIDI消息的总长度(以字节为单位)。 MIDI消息由一个状态字节和零个或多个数据字节组成。 返回值的范围从系统实时消息的1到通道消息的2或3,到元和系统专用消息的任何值。
        结果
        消息的长度(以字节为单位)
      • clone

        public abstract Object clone()
        创建与此对象具有相同类并具有相同内容的新对象。
        重写:
        clone在类 Object
        结果
        这个实例的克隆
        另请参见:
        Cloneable