- java.lang.Object
-
- javax.sound.midi.MidiMessage
-
- javax.sound.midi.ShortMessage
-
- 实现的所有接口
-
Cloneable
public class ShortMessage extends MidiMessage
AShortMessage
包含一条MIDI消息,其状态字节后最多有两个数据字节。 满足此标准的MIDI消息类型是频道语音,频道模式,系统通用和系统实时 - 换句话说,除了系统独占和元事件之外的所有内容。ShortMessage
类提供了获取和设置MIDI消息内容的方法。许多
ShortMessage
方法都有整数参数,您可以通过这些参数指定MIDI状态或数据字节。 如果您知道数值,则可以直接表达。 对于系统通用和系统实时消息,您可以经常使用ShortMessage
的相应字段,例如SYSTEM_RESET
。 对于通道消息,状态字节的高4位由命令值指定,低4位由MIDI通道号指定。 要转换在Java的符号字节的形式传入的MIDI数据字节,则可以使用conversion code在给定的MidiMessage
类的描述。- 另请参见:
-
SysexMessage
,MetaMessage
-
-
字段汇总
字段 变量和类型 字段 描述 static int
ACTIVE_SENSING
Active Sensing消息的状态字节(0xFE或254)。static int
CHANNEL_PRESSURE
通道压力(触后)消息的命令值(0xD0或208)。static int
CONTINUE
Continue消息的状态字节(0xFB或251)。static int
CONTROL_CHANGE
控制变更消息的命令值(0xB0或176)。static int
END_OF_EXCLUSIVE
系统独占消息的状态字节(0xF7或247)。static int
MIDI_TIME_CODE
MIDI时间码四分之一帧消息的状态字节(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(触后)消息的命令值(0xA0或160)。static int
PROGRAM_CHANGE
程序变更消息的命令值(0xC0或192)。static int
SONG_POSITION_POINTER
乐曲位置指针消息的状态字节(0xF2或242)。static int
SONG_SELECT
MIDI乐曲选择信息的状态字节(0xF3或243)。static int
START
开始消息的状态字节(0xFA或250)。static int
STOP
停止消息的状态字节(0xFC或252)。static int
SYSTEM_RESET
系统复位消息的状态字节(0xFF或255)。static int
TIMING_CLOCK
定时时钟消息的状态字节(0xF8或248)。static int
TUNE_REQUEST
调谐请求消息的状态字节(0xF6或246)。-
声明的属性在类 javax.sound.midi.MidiMessage
data, length
-
-
构造方法摘要
构造方法 变量 构造器 描述 ShortMessage()
构造一个新的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消息。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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
-
-
-
-
字段详细信息
-
MIDI_TIME_CODE
public static final int MIDI_TIME_CODE
MIDI时间码四分之一帧消息的状态字节(0xF1或241)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
SONG_POSITION_POINTER
public static final int SONG_POSITION_POINTER
乐曲位置指针消息的状态字节(0xF2或242)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
SONG_SELECT
public static final int SONG_SELECT
MIDI乐曲选择信息的状态字节(0xF3或243)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
TUNE_REQUEST
public static final int TUNE_REQUEST
调谐请求消息的状态字节(0xF6或246)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
END_OF_EXCLUSIVE
public static final int END_OF_EXCLUSIVE
系统独占消息的状态字节(0xF7或247)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
TIMING_CLOCK
public static final int TIMING_CLOCK
定时时钟消息的状态字节(0xF8或248)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
START
public static final int START
开始消息的状态字节(0xFA或250)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
CONTINUE
public static final int CONTINUE
Continue消息的状态字节(0xFB或251)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
STOP
public static final int STOP
停止消息的状态字节(0xFC或252)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
ACTIVE_SENSING
public static final int ACTIVE_SENSING
Active Sensing消息的状态字节(0xFE或254)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
SYSTEM_RESET
public static final int SYSTEM_RESET
系统复位消息的状态字节(0xFF或255)。- 另请参见:
-
MidiMessage.getStatus()
, 常数字段值
-
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
Polyphonic Key Pressure(触后)消息的命令值(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
通道压力(触后)消息的命令值(0xD0或208)。- 另请参见:
- 常数字段值
-
PITCH_BEND
public static final int PITCH_BEND
Pitch Bend消息的命令值(0xE0或224)。- 另请参见:
- 常数字段值
-
-
构造方法详细信息
-
ShortMessage
public ShortMessage()
构造一个新的ShortMessage
。 保证新消息的内容指定有效的MIDI消息。 随后,您可以使用setMessage
方法之一设置消息的内容。- 另请参见:
-
setMessage(int)
-
ShortMessage
public ShortMessage(int status) throws InvalidMidiDataException
构造一个新的ShortMessage
,它表示不带数据字节的MIDI消息。 可以使用setMessage
方法之一更改消息的内容。- 参数
-
status
- MIDI状态字节 - 异常
-
InvalidMidiDataException
- 如果status
没有为不需要数据字节的消息指定有效的MIDI状态字节 - 从以下版本开始:
- 1.7
- 另请参见:
-
setMessage(int)
,setMessage(int, int, int)
,setMessage(int, int, int, int)
,MidiMessage.getStatus()
-
ShortMessage
public ShortMessage(int status, int data1, int data2) throws InvalidMidiDataException
构造一个新的ShortMessage
,它表示最多需要两个数据字节的MIDI消息。 如果消息只占用一个数据字节,则忽略第二个数据字节。 如果消息不接受任何数据字节,则忽略两个数据字节。 可以使用setMessage
方法之一更改消息的内容。- 参数
-
status
- MIDI状态字节 -
data1
- 第一个数据字节 -
data2
- 第二个数据字节 - 异常
-
InvalidMidiDataException
- 如果属于该消息的状态字节或所有数据字节未指定有效的MIDI消息 - 从以下版本开始:
- 1.7
- 另请参见:
-
setMessage(int)
,setMessage(int, int, int)
,setMessage(int, int, int, int)
,MidiMessage.getStatus()
,getData1()
,getData2()
-
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
- 另请参见:
-
setMessage(int)
,setMessage(int, int, int)
,setMessage(int, int, int, int)
,getCommand()
,getChannel()
,getData1()
,getData2()
-
ShortMessage
protected ShortMessage(byte[] data)
构造一个新的ShortMessage
。- 参数
-
data
- 包含完整消息的字节数组。 可以使用setMessage
方法更改消息数据。 - 另请参见:
-
setMessage(int)
-
-
方法详细信息
-
setMessage
public void setMessage(int status) throws InvalidMidiDataException
设置不带数据字节的MIDI消息的参数。- 参数
-
status
- MIDI状态字节 - 异常
-
InvalidMidiDataException
- 如果status
没有为不需要数据字节的消息指定有效的MIDI状态字节 - 另请参见:
-
setMessage(int, int, int)
,setMessage(int, int, int, int)
-
setMessage
public void setMessage(int status, int data1, int data2) throws InvalidMidiDataException
设置需要一个或两个数据字节的MIDI消息的参数。 如果消息只占用一个数据字节,则忽略第二个数据字节; 如果消息不接受任何数据字节,则忽略两个数据字节。- 参数
-
status
- MIDI状态字节 -
data1
- 第一个数据字节 -
data2
- 第二个数据字节 - 异常
-
InvalidMidiDataException
- 如果状态字节或属于该消息的所有数据字节未指定有效的MIDI消息 - 另请参见:
-
setMessage(int, int, int, int)
,setMessage(int)
-
setMessage
public void setMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException
设置最多需要两个数据字节的通道消息的短消息参数。 如果消息只占用一个数据字节,则忽略第二个数据字节; 如果消息不接受任何数据字节,则忽略两个数据字节。- 参数
-
command
- 此消息表示的MIDI命令 -
channel
- 与消息关联的通道 -
data1
- 第一个数据字节 -
data2
- 第二个数据字节 - 异常
-
InvalidMidiDataException
- 如果状态字节或属于该消息的所有数据字节,则不指定有效的MIDI消息 - 另请参见:
-
setMessage(int, int, int)
,setMessage(int)
,getCommand()
,getChannel()
,getData1()
,getData2()
-
getChannel
public int getChannel()
获得与此事件关联的MIDI通道。 该方法假定该事件是MIDI通道消息; 如果没有,返回值将没有意义。- 结果
- 与消息关联的MIDI通道
- 另请参见:
-
setMessage(int, int, int, int)
-
getCommand
public int getCommand()
获得与此事件关联的MIDI命令。 该方法假定该事件是MIDI通道消息; 如果没有,返回值将没有意义。- 结果
- 与此事件关联的MIDI命令
- 另请参见:
-
setMessage(int, int, int, int)
-
getData1
public int getData1()
获取消息中的第一个数据字节。- 结果
-
data1
字段的值 - 另请参见:
-
setMessage(int, int, int)
-
getData2
public int getData2()
获取消息中的第二个数据字节。- 结果
-
data2
字段的值 - 另请参见:
-
setMessage(int, int, int)
-
clone
public Object clone()
创建与此对象具有相同类并具有相同内容的新对象。- Specified by:
-
clone
类MidiMessage
- 结果
- 这个实例的克隆
- 另请参见:
-
Cloneable
-
getDataLength
protected final int getDataLength(int status) throws InvalidMidiDataException
检索与特定状态字节值关联的数据字节数。- 参数
-
status
- 状态字节值,必须表示短MIDI消息 - 结果
- 数据长度,以字节为单位(0,1或2)
- 异常
-
InvalidMidiDataException
- if thestatus
argument does not represent the status byte for any short message
-
-