java.lang.Object javax.sound.midi.MidiMessage javax.sound.midi.ShortMessage
public class ShortMessage
ShortMessage
包含了一个 MIDI 消息,该消息在状态字节后最多有两个数据字节。满足此标准的 MIDI 消息类型是通道声音、通道模式、系统常见和系统实时消息,换句话说,除系统独占和元事件之外的所有情况。ShortMessage
类提供了用于获取和设置 MIDI 消息内容的方法。
多个 ShortMessage
方法带有整数参数,您可通过它来指定 MIDI 状态或数据字节。如果知道此数字值,则可以直接使用数字表示。对于系统常见和系统实时消息,通常可使用相应的 ShortMessage
字段,例如 SYSTEM_RESET
。对于通道消息,状态字节的高四位由一个命令值指定,低四位由一个 MIDI 通道号指定。要转换传入的 MIDI 数据字节(Java 带符号字节格式),可以使用
类描述中给出的变换码。 MidiMessage
SysexMessage
,
MetaMessage
字段摘要 | |
---|---|
static int |
ACTIVE_SENSING ACTIVE_SENSING 消息的状态字节(0xFE 或 254)。 |
static int |
CHANNEL_PRESSURE CHANNEL_PRESSURE (Aftertouch) 消息的命令值(0xD0 或 208) |
static int |
CONTINUE CONTINUE 消息的状态字节(0xFB 或 251)。 |
static int |
CONTROL_CHANGE CONTROL_CHANGE 消息的命令值(0xB0 或 176) |
static int |
END_OF_EXCLUSIVE End of System Exclusive 消息的状态字节(0xF7 或 247)。 |
static int |
MIDI_TIME_CODE MIDI Time Code Quarter Frame 消息的状态字节(0xF1 或 241)。 |
static int |
NOTE_OFF NOTE_OFF 消息的命令值(0x80 或 128) |
static int |
NOTE_ON NOTE_ON 消息的命令值(0x90 或 144) |
static int |
PITCH_BEND PITCH_BEND 消息的命令值(0xE0 或 224) |
static int |
POLY_PRESSURE Polyphonic Key Pressure (Aftertouch) 消息的命令值(0xA0 或 128) |
static int |
PROGRAM_CHANGE PROGRAM_CHANGE 消息的命令值(0xC0 或 192) |
static int |
SONG_POSITION_POINTER SONG_POSITION_POINTER 消息的状态字节(0xF2 或 242)。 |
static int |
SONG_SELECT MIDI SONG_SELECT 消息的状态字节(0xF3 或 243)。 |
static int |
START START 消息的状态字节(0xFA 或 250)。 |
static int |
STOP STOP 消息的状态字节(0xFC 或 252)。 |
static int |
SYSTEM_RESET SYSTEM_RESET 消息的状态字节(0xFF 或 255)。 |
static int |
TIMING_CLOCK TIMING_CLOCK 消息的状态字节(0xF8 或 248)。 |
static int |
TUNE_REQUEST TUNE_REQUEST 消息的状态字节(0xF6 或 246)。 |
从类 javax.sound.midi.MidiMessage 继承的字段 |
---|
data, length |
构造方法摘要 | |
---|---|
|
ShortMessage() 构造一个新的 ShortMessage 。 |
protected |
ShortMessage(byte[] data) 构造一个新的 ShortMessage 。 |
方法摘要 | |
---|---|
Object |
clone() 创建一个与此对象具有相同类和相同内容的新对象。 |
int |
getChannel() 获取与此事件关联的 MIDI 通道。 |
int |
getCommand() 获取与此事件关联的 MIDI 命令。 |
int |
getData1() 获取消息中的第一个数据字节。 |
int |
getData2() 获取消息中的第二个数据字节。 |
protected 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 |
字段详细信息 |
---|
public static final int MIDI_TIME_CODE
MidiMessage.getStatus()
,
常量字段值
public static final int SONG_POSITION_POINTER
MidiMessage.getStatus()
,
常量字段值
public static final int SONG_SELECT
MidiMessage.getStatus()
,
常量字段值
public static final int TUNE_REQUEST
MidiMessage.getStatus()
,
常量字段值
public static final int END_OF_EXCLUSIVE
MidiMessage.getStatus()
,
常量字段值
public static final int TIMING_CLOCK
MidiMessage.getStatus()
,
常量字段值
public static final int START
MidiMessage.getStatus()
,
常量字段值
public static final int CONTINUE
MidiMessage.getStatus()
,
常量字段值
public static final int STOP
MidiMessage.getStatus()
,
常量字段值
public static final int ACTIVE_SENSING
MidiMessage.getStatus()
,
常量字段值
public static final int SYSTEM_RESET
MidiMessage.getStatus()
,
常量字段值
public static final int NOTE_OFF
public static final int NOTE_ON
public static final int POLY_PRESSURE
public static final int CONTROL_CHANGE
public static final int PROGRAM_CHANGE
public static final int CHANNEL_PRESSURE
public static final int PITCH_BEND
构造方法详细信息 |
---|
public ShortMessage()
ShortMessage
。可保证新消息的内容指定一个有效的 MIDI 消息。之后,可以使用
setMessage
方法之一来设置消息的内容。
setMessage(int)
protected ShortMessage(byte[] data)
ShortMessage
。
data
- 包含完整消息的 byte 数组。使用
setMessage
方法可更改消息数据。
setMessage(int)
方法详细信息 |
---|
public void setMessage(int status) throws InvalidMidiDataException
status
- MIDI 状态字节
InvalidMidiDataException
- 如果
status
没有为不要求任何数据字节的消息指定有效的 MIDI 状态字节。
InvalidMidiDataException
setMessage(int, int, int)
,
setMessage(int, int, int, int)
public void setMessage(int status, int data1, int data2) throws InvalidMidiDataException
status
- MIDI 状态字节
data1
- 第一个数据字节
data2
- 第二个数据字节
InvalidMidiDataException
- 如果该状态字节或属于此消息的所有数据字节都未指定有效的 MIDI 消息。
InvalidMidiDataException
setMessage(int, int, int, int)
,
setMessage(int)
public void setMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException
command
- 此消息所表示的 MIDI 命令
channel
- 与此消息关联的通道
data1
- 第一个数据字节
data2
- 第二个数据字节
InvalidMidiDataException
- 如果该状态字节或属于此消息的所有数据字节都未指定有效的 MIDI 消息
InvalidMidiDataException
setMessage(int, int, int)
,
setMessage(int)
,
getCommand()
,
getChannel()
,
getData1()
,
getData2()
public int getChannel()
setMessage(int, int, int, int)
public int getCommand()
public int getData1()
data1
字段的值
setMessage(int, int, int)
public int getData2()
data2
字段的值
setMessage(int, int, int)
public Object clone()
MidiMessage
中的
clone
Cloneable
protected final int getDataLength(int status) throws InvalidMidiDataException
status
- 状态字节值,必须表示一个短 MIDI 消息
InvalidMidiDataException
- 如果
status
参数不表示任何短消息的状态字节
InvalidMidiDataException