模块 java.desktop

类 ShortMessage

java.lang.Object
javax.sound.midi.MidiMessage
javax.sound.midi.ShortMessage
所有已实现的接口:
Cloneable

public class ShortMessage extends MidiMessage
ShortMessage 包含一个 MIDI 消息,其状态字节后最多有两个数据字节。满足此标准的 MIDI 消息类型是通道语音、通道模式、系统通用和系统实时——换句话说,除了系统专用和元事件之外的所有类型。 ShortMessage 类提供获取和设置 MIDI 消息内容的方法。

许多 ShortMessage 方法都有整数参数,您可以通过这些参数指定 MIDI 状态或数据字节。如果知道数值,可以直接表示。对于系统公共消息和系统实时消息,可以经常使用ShortMessage对应的字段,比如SYSTEM_RESET 。对于通道消息,状态字节的高四位由命令值指定,低四位由 MIDI 通道号指定。要转换采用 Java 有符号字节形式的传入 MIDI 数据字节,您可以使用 MidiMessage 类描述中给出的 转换码

参见:
  • 字段摘要

    字段
    修饰符和类型
    Field
    描述
    static final int
    Active Sensing 消息的状态字节(0xFE 或 254)。
    static final int
    通道压力(触后)消息的命令值(0xD0 或 208)。
    static final int
    Continue 消息的状态字节(0xFB 或 251)。
    static final int
    Control Change 消息的命令值(0xB0 或 176)。
    static final int
    End of System Exclusive 消息的状态字节(0xF7 或 247)。
    static final int
    MIDI 时间码四分之一帧消息的状态字节(0xF1 或 241)。
    static final int
    Note Off 消息的命令值(0x80 或 128)。
    static final int
    Note On 消息的命令值(0x90 或 144)。
    static final int
    弯音消息的命令值(0xE0 或 224)。
    static final int
    和弦键压(触后)消息的命令值(0xA0 或 160)。
    static final int
    程序更改消息的命令值(0xC0 或 192)。
    static final int
    歌曲位置指针消息的状态字节(0xF2 或 242)。
    static final int
    MIDI 歌曲选择消息的状态字节(0xF3 或 243)。
    static final int
    Start 消息的状态字节(0xFA 或 250)。
    static final int
    停止消息的状态字节(0xFC 或 252)。
    static final int
    系统重置消息的状态字节(0xFF 或 255)。
    static final int
    定时时钟消息的状态字节(0xF8 或 248)。
    static final int
    调谐请求消息的状态字节(0xF6 或 246)。

    在类 javax.sound.midi.MidiMessage 中声明的字段

    data, length
  • 构造方法总结

    构造方法
    修饰符
    构造方法
    描述
     
    构造一个新的 ShortMessage .
    protected
    ShortMessage(byte[] data)
    构造一个新的 ShortMessage .
     
    ShortMessage(int status)
    构造一个新的 ShortMessage,它表示不带数据字节的 MIDI 消息。
     
    ShortMessage(int status, int data1, int data2)
    构造一个新的 ShortMessage,它表示最多占用两个数据字节的 MIDI 消息。
     
    ShortMessage(int command, int channel, int data1, int data2)
    构造一个新的 ShortMessage,它表示最多占用两个数据字节的通道 MIDI 消息。
  • 方法总结

    修饰符和类型
    方法
    描述
    创建一个与此对象具有相同类和相同内容的新对象。
    int
    获取与此事件关联的 MIDI 通道。
    int
    获取与此事件关联的 MIDI 命令。
    int
    获取消息中的第一个数据字节。
    int
    获取消息中的第二个数据字节。
    protected final int
    getDataLength(int status)
    检索与特定状态字节值关联的数据字节数。
    void
    setMessage(int status)
    为不带数据字节的 MIDI 消息设置参数。
    void
    setMessage(int status, int data1, int data2)
    为采用一个或两个数据字节的 MIDI 消息设置参数。
    void
    setMessage(int command, int channel, int data1, int data2)
    设置最多占用两个数据字节的通道消息的短消息参数。

    在类 javax.sound.midi.MidiMessage 中声明的方法

    getLength, getMessage, getStatus, setMessage

    在类 java.lang.Object 中声明的方法

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细信息

    • MIDI_TIME_CODE

      public static final int MIDI_TIME_CODE
      MIDI 时间码四分之一帧消息的状态字节(0xF1 或 241)。
      参见:
    • SONG_POSITION_POINTER

      public static final int SONG_POSITION_POINTER
      歌曲位置指针消息的状态字节(0xF2 或 242)。
      参见:
    • SONG_SELECT

      public static final int SONG_SELECT
      MIDI 歌曲选择消息的状态字节(0xF3 或 243)。
      参见:
    • TUNE_REQUEST

      public static final int TUNE_REQUEST
      调谐请求消息的状态字节(0xF6 或 246)。
      参见:
    • END_OF_EXCLUSIVE

      public static final int END_OF_EXCLUSIVE
      End of System Exclusive 消息的状态字节(0xF7 或 247)。
      参见:
    • TIMING_CLOCK

      public static final int TIMING_CLOCK
      定时时钟消息的状态字节(0xF8 或 248)。
      参见:
    • START

      public static final int START
      Start 消息的状态字节(0xFA 或 250)。
      参见:
    • CONTINUE

      public static final int CONTINUE
      Continue 消息的状态字节(0xFB 或 251)。
      参见:
    • STOP

      public static final int STOP
      停止消息的状态字节(0xFC 或 252)。
      参见:
    • ACTIVE_SENSING

      public static final int ACTIVE_SENSING
      Active Sensing 消息的状态字节(0xFE 或 254)。
      参见:
    • SYSTEM_RESET

      public static final int SYSTEM_RESET
      系统重置消息的状态字节(0xFF 或 255)。
      参见:
    • NOTE_OFF

      public static final int NOTE_OFF
      Note Off 消息的命令值(0x80 或 128)。
      参见:
    • NOTE_ON

      public static final int NOTE_ON
      Note On 消息的命令值(0x90 或 144)。
      参见:
    • POLY_PRESSURE

      public static final int POLY_PRESSURE
      和弦键压(触后)消息的命令值(0xA0 或 160)。
      参见:
    • CONTROL_CHANGE

      public static final int CONTROL_CHANGE
      Control Change 消息的命令值(0xB0 或 176)。
      参见:
    • PROGRAM_CHANGE

      public static final int PROGRAM_CHANGE
      程序更改消息的命令值(0xC0 或 192)。
      参见:
    • CHANNEL_PRESSURE

      public static final int CHANNEL_PRESSURE
      通道压力(触后)消息的命令值(0xD0 或 208)。
      参见:
    • PITCH_BEND

      public static final int PITCH_BEND
      弯音消息的命令值(0xE0 或 224)。
      参见:
  • 构造方法详细信息

    • ShortMessage

      public ShortMessage()
      构造一个新的 ShortMessage 。保证新消息的内容指定有效的 MIDI 消息。随后,您可以使用 setMessage 方法之一设置消息的内容。
      参见:
    • ShortMessage

      public ShortMessage(int status) throws InvalidMidiDataException
      构造一个新的 ShortMessage,它表示不带数据字节的 MIDI 消息。可以使用 setMessage 方法之一更改消息的内容。
      参数:
      status - MIDI 状态字节
      抛出:
      InvalidMidiDataException - 如果 status 没有为不需要数据字节的消息指定有效的 MIDI 状态字节
      自从:
      1.7
      参见:
    • ShortMessage

      public ShortMessage(int status, int data1, int data2) throws InvalidMidiDataException
      构造一个新的 ShortMessage,它表示最多占用两个数据字节的 MIDI 消息。如果消息只占用一个数据字节,则忽略第二个数据字节。如果消息不占用任何数据字节,则两个数据字节都将被忽略。可以使用 setMessage 方法之一更改消息的内容。
      参数:
      status - MIDI 状态字节
      data1 - 第一个数据字节
      data2 - 第二个数据字节
      抛出:
      InvalidMidiDataException - 如果属于消息的状态字节或所有数据字节未指定有效的 MIDI 消息
      自从:
      1.7
      参见:
    • ShortMessage

      public ShortMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException
      构造一个新的 ShortMessage,它表示最多占用两个数据字节的通道 MIDI 消息。如果消息只占用一个数据字节,则忽略第二个数据字节。如果消息不占用任何数据字节,则两个数据字节都将被忽略。可以使用 setMessage 方法之一更改消息的内容。
      参数:
      command - 此消息表示的 MIDI 命令
      channel - 与消息关联的通道
      data1 - 第一个数据字节
      data2 - 第二个数据字节
      抛出:
      InvalidMidiDataException - 如果属于消息的命令值、通道值或所有数据字节未指定有效的 MIDI 消息
      自从:
      1.7
      参见:
    • ShortMessage

      protected ShortMessage(byte[] data)
      构造一个新的 ShortMessage .
      参数:
      data - 包含完整消息的字节数组。可以使用setMessage 方法更改消息数据。
      参见:
  • 方法详情

    • setMessage

      public void setMessage(int status) throws InvalidMidiDataException
      为不带数据字节的 MIDI 消息设置参数。
      参数:
      status - MIDI 状态字节
      抛出:
      InvalidMidiDataException - 如果 status 没有为不需要数据字节的消息指定有效的 MIDI 状态字节
      参见:
    • setMessage

      public void setMessage(int status, int data1, int data2) throws InvalidMidiDataException
      为采用一个或两个数据字节的 MIDI 消息设置参数。如果消息只占用一个数据字节,则忽略第二个数据字节;如果消息不占用任何数据字节,则两个数据字节都将被忽略。
      参数:
      status - MIDI 状态字节
      data1 - 第一个数据字节
      data2 - 第二个数据字节
      抛出:
      InvalidMidiDataException - 如果状态字节或属于消息的所有数据字节未指定有效的 MIDI 消息
      参见:
    • setMessage

      public void setMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException
      设置最多占用两个数据字节的通道消息的短消息参数。如果消息只占用一个数据字节,则忽略第二个数据字节;如果消息不占用任何数据字节,则两个数据字节都将被忽略。
      参数:
      command - 此消息表示的 MIDI 命令
      channel - 与消息关联的通道
      data1 - 第一个数据字节
      data2 - 第二个数据字节
      抛出:
      InvalidMidiDataException - 如果状态字节或所有数据字节属于消息,则不指定有效的 MIDI 消息
      参见:
    • getChannel

      public int getChannel()
      获取与此事件关联的 MIDI 通道。此方法假定事件是 MIDI 通道消息;如果不是,返回值将没有意义。
      返回:
      与消息关联的 MIDI 通道
      参见:
    • getCommand

      public int getCommand()
      获取与此事件关联的 MIDI 命令。此方法假定事件是 MIDI 通道消息;如果不是,返回值将没有意义。
      返回:
      与此事件关联的 MIDI 命令
      参见:
    • getData1

      public int getData1()
      获取消息中的第一个数据字节。
      返回:
      data1 字段的值
      参见:
    • getData2

      public int getData2()
      获取消息中的第二个数据字节。
      返回:
      data2 字段的值
      参见:
    • clone

      public Object  clone()
      创建一个与此对象具有相同类和相同内容的新对象。
      指定者:
      clone 在类 MidiMessage
      返回:
      此实例的克隆
      参见:
    • getDataLength

      protected final int getDataLength(int status) throws InvalidMidiDataException
      检索与特定状态字节值关联的数据字节数。
      参数:
      status - 状态字节值,必须代表一个短的 MIDI 消息
      返回:
      以字节为单位的数据长度(0、1 或 2)
      抛出:
      InvalidMidiDataException - 如果 status 参数不代表任何短消息的状态字节