- java.lang.Object
-
- javax.sound.midi.MidiMessage
-
- javax.sound.midi.ShortMessage
-
- All Implemented Interfaces:
-
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
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
ACTIVE_SENSING
Active Sensing消息的状态字节(0xFE或254)。static int
CHANNEL_PRESSURE
通道压力(触发)消息(0xD0或208)的命令值。static int
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
注释消息(0x80或128)的命令值。static int
NOTE_ON
注释消息(0x90或144)的命令值。static int
PITCH_BEND
Pitch Bend消息的命令值(0xE0或224)。static int
POLY_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
Tune请求消息的状态字节(0xF6或246)。-
Fields inherited from class javax.sound.midi.MidiMessage
data, length
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 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消息,最多可以占用两个数据字节。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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)
设置通道消息的短消息参数,最多可以包含两个数据字节。-
Methods inherited from class javax.sound.midi.MidiMessage
getLength, getMessage, getStatus, setMessage
-
-
-
-
字段详细信息
-
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
Tune请求消息的状态字节(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
Active Sensing消息的状态字节(0xFE或254)。
-
SYSTEM_RESET
public static final int SYSTEM_RESET
系统复位消息的状态字节(0xFF或255)。
-
NOTE_OFF
public static final int NOTE_OFF
注释消息(0x80或128)的命令值。- 另请参见:
- Constant Field Values
-
NOTE_ON
public static final int NOTE_ON
注释消息(0x90或144)的命令值。- 另请参见:
- Constant Field Values
-
POLY_PRESSURE
public static final int POLY_PRESSURE
复音键压力(触发后)消息(0xA0或160)的指令值。- 另请参见:
- Constant Field Values
-
CONTROL_CHANGE
public static final int CONTROL_CHANGE
控制更改消息(0xB0或176)的命令值。- 另请参见:
- Constant Field Values
-
PROGRAM_CHANGE
public static final int PROGRAM_CHANGE
程序更改消息的指令值(0xC0或192)。- 另请参见:
- Constant Field Values
-
CHANNEL_PRESSURE
public static final int CHANNEL_PRESSURE
通道压力(触发)消息(0xD0或208)的命令值。- 另请参见:
- Constant Field Values
-
PITCH_BEND
public static final int PITCH_BEND
Pitch Bend消息的命令值(0xE0或224)。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
ShortMessage
public ShortMessage()
构造新的ShortMessage
。 保证新消息的内容指定有效的MIDI消息。 随后,您可以使用setMessage
之一来设置消息的内容。- 另请参见:
-
setMessage(int)
-
ShortMessage
public ShortMessage(int status) throws InvalidMidiDataException
ShortMessage
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
-
-