Module java.desktop
Package javax.sound.midi

Class 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 Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    活动感应消息的状态字节(0xFE,或254)。
    static final int
    通道压力(Aftertouch)消息的命令值(0xD0,或208)。
    static final int
    继续消息的状态字节(0xFB,或251)。
    static final int
    控制变化消息的命令值(0xB0,或176)。
    static final int
    系统专用消息结束的状态字节(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
    多音键压力(Aftertouch)消息的命令值(0xA0,或160)。
    static final int
    程序更改消息的命令值(0xC0,或192)。
    static final int
    歌曲位置指针消息的状态字节(0xF2,或242)。
    static final int
    MIDI歌曲选择消息的状态字节(0xF3,或243)。
    static final int
    开始消息的状态字节(0xFA,或250)。
    static final int
    停止消息的状态字节(0xFC,或252)。
    static final int
    系统复位消息的状态字节(0xFF,或255)。
    static final int
    时间同步消息的状态字节(0xF8,或248)。
    static final int
    调音请求消息的状态字节(0xF6,或246)。

    Fields declared in class javax.sound.midi.MidiMessage

    data, length
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
     
    构造一个新的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消息。
  • Method Summary

    Modifier and Type
    Method
    Description
    clone()
    创建一个与此对象相同类和相同内容的新对象。
    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)
    设置最多包含两个数据字节的通道消息的短消息参数。

    Methods declared in class javax.sound.midi.MidiMessage

    getLength, getMessage, getStatus, setMessage

    Methods declared in class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • 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
      系统专用消息结束的状态字节(0xF7,或247)。
      参见:
    • TIMING_CLOCK

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

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

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

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

      public static final int 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
      多音键压力(Aftertouch)消息的命令值(0xA0,或160)。
      参见:
    • CONTROL_CHANGE

      public static final int CONTROL_CHANGE
      控制变化消息的命令值(0xB0,或176)。
      参见:
    • PROGRAM_CHANGE

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

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

      public static final int PITCH_BEND
      弯音消息的命令值(0xE0,或224)。
      参见:
  • Constructor Details

    • 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方法更改消息数据。
      参见:
  • Method Details

    • 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参数未表示任何短消息的状态字节