java.lang.Object
javax.sound.midi.MidiMessage
javax.sound.midi.ShortMessage
- 所有已实现的接口:
Cloneable
ShortMessage 包含一个 MIDI 消息,其状态字节后最多有两个数据字节。满足此标准的 MIDI 消息类型是通道语音、通道模式、系统通用和系统实时——换句话说,除了系统专用和元事件之外的所有类型。 ShortMessage 类提供获取和设置 MIDI 消息内容的方法。
许多 ShortMessage 方法都有整数参数,您可以通过这些参数指定 MIDI 状态或数据字节。如果知道数值,可以直接表示。对于系统公共消息和系统实时消息,可以经常使用ShortMessage对应的字段,比如SYSTEM_RESET 。对于通道消息,状态字节的高四位由命令值指定,低四位由 MIDI 通道号指定。要转换采用 Java 有符号字节形式的传入 MIDI 数据字节,您可以使用 MidiMessage 类描述中给出的 转换码。
- 参见:
-
字段摘要
字段修饰符和类型Field描述static final intActive Sensing 消息的状态字节(0xFE 或 254)。static final int通道压力(触后)消息的命令值(0xD0 或 208)。static final intContinue 消息的状态字节(0xFB 或 251)。static final intControl Change 消息的命令值(0xB0 或 176)。static final intEnd of System Exclusive 消息的状态字节(0xF7 或 247)。static final intMIDI 时间码四分之一帧消息的状态字节(0xF1 或 241)。static final intNote Off 消息的命令值(0x80 或 128)。static final intNote 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 intMIDI 歌曲选择消息的状态字节(0xF3 或 243)。static final intStart 消息的状态字节(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.protectedShortMessage(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 消息。 -
方法总结
修饰符和类型方法描述clone()创建一个与此对象具有相同类和相同内容的新对象。int获取与此事件关联的 MIDI 通道。int获取与此事件关联的 MIDI 命令。intgetData1()获取消息中的第一个数据字节。intgetData2()获取消息中的第二个数据字节。protected final intgetDataLength(int status) 检索与特定状态字节值关联的数据字节数。voidsetMessage(int status) 为不带数据字节的 MIDI 消息设置参数。voidsetMessage(int status, int data1, int data2) 为采用一个或两个数据字节的 MIDI 消息设置参数。voidsetMessage(int command, int channel, int data1, int data2) 设置最多占用两个数据字节的通道消息的短消息参数。在类 javax.sound.midi.MidiMessage 中声明的方法
getLength, getMessage, getStatus, setMessage
-
字段详细信息
-
MIDI_TIME_CODE
public static final int MIDI_TIME_CODEMIDI 时间码四分之一帧消息的状态字节(0xF1 或 241)。- 参见:
-
SONG_POSITION_POINTER
public static final int SONG_POSITION_POINTER歌曲位置指针消息的状态字节(0xF2 或 242)。- 参见:
-
SONG_SELECT
public static final int SONG_SELECTMIDI 歌曲选择消息的状态字节(0xF3 或 243)。- 参见:
-
TUNE_REQUEST
public static final int TUNE_REQUEST调谐请求消息的状态字节(0xF6 或 246)。- 参见:
-
END_OF_EXCLUSIVE
public static final int END_OF_EXCLUSIVEEnd of System Exclusive 消息的状态字节(0xF7 或 247)。- 参见:
-
TIMING_CLOCK
public static final int TIMING_CLOCK定时时钟消息的状态字节(0xF8 或 248)。- 参见:
-
START
public static final int STARTStart 消息的状态字节(0xFA 或 250)。- 参见:
-
CONTINUE
public static final int CONTINUEContinue 消息的状态字节(0xFB 或 251)。- 参见:
-
STOP
public static final int STOP停止消息的状态字节(0xFC 或 252)。- 参见:
-
ACTIVE_SENSING
public static final int ACTIVE_SENSINGActive Sensing 消息的状态字节(0xFE 或 254)。- 参见:
-
SYSTEM_RESET
public static final int SYSTEM_RESET系统重置消息的状态字节(0xFF 或 255)。- 参见:
-
NOTE_OFF
public static final int NOTE_OFFNote Off 消息的命令值(0x80 或 128)。- 参见:
-
NOTE_ON
public static final int NOTE_ONNote On 消息的命令值(0x90 或 144)。- 参见:
-
POLY_PRESSURE
public static final int POLY_PRESSURE和弦键压(触后)消息的命令值(0xA0 或 160)。- 参见:
-
CONTROL_CHANGE
public static final int CONTROL_CHANGEControl 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
构造一个新的ShortMessage,它表示不带数据字节的 MIDI 消息。可以使用setMessage方法之一更改消息的内容。- 参数:
status- MIDI 状态字节- 抛出:
InvalidMidiDataException- 如果status没有为不需要数据字节的消息指定有效的 MIDI 状态字节- 自从:
- 1.7
- 参见:
-
ShortMessage
构造一个新的ShortMessage,它表示最多占用两个数据字节的 MIDI 消息。如果消息只占用一个数据字节,则忽略第二个数据字节。如果消息不占用任何数据字节,则两个数据字节都将被忽略。可以使用setMessage方法之一更改消息的内容。- 参数:
status- MIDI 状态字节data1- 第一个数据字节data2- 第二个数据字节- 抛出:
InvalidMidiDataException- 如果属于消息的状态字节或所有数据字节未指定有效的 MIDI 消息- 自从:
- 1.7
- 参见:
-
ShortMessage
构造一个新的ShortMessage,它表示最多占用两个数据字节的通道 MIDI 消息。如果消息只占用一个数据字节,则忽略第二个数据字节。如果消息不占用任何数据字节,则两个数据字节都将被忽略。可以使用setMessage方法之一更改消息的内容。- 参数:
command- 此消息表示的 MIDI 命令channel- 与消息关联的通道data1- 第一个数据字节data2- 第二个数据字节- 抛出:
InvalidMidiDataException- 如果属于消息的命令值、通道值或所有数据字节未指定有效的 MIDI 消息- 自从:
- 1.7
- 参见:
-
ShortMessage
protected ShortMessage(byte[] data) 构造一个新的ShortMessage.- 参数:
data- 包含完整消息的字节数组。可以使用setMessage方法更改消息数据。- 参见:
-
-
方法详情
-
setMessage
为不带数据字节的 MIDI 消息设置参数。- 参数:
status- MIDI 状态字节- 抛出:
InvalidMidiDataException- 如果status没有为不需要数据字节的消息指定有效的 MIDI 状态字节- 参见:
-
setMessage
为采用一个或两个数据字节的 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
创建一个与此对象具有相同类和相同内容的新对象。- 指定者:
clone在类MidiMessage中- 返回:
- 此实例的克隆
- 参见:
-
getDataLength
检索与特定状态字节值关联的数据字节数。- 参数:
status- 状态字节值,必须代表一个短的 MIDI 消息- 返回:
- 以字节为单位的数据长度(0、1 或 2)
- 抛出:
InvalidMidiDataException- 如果status参数不代表任何短消息的状态字节
-