- 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 intACTIVE_SENSINGActive Sensing消息的状态字节(0xFE或254)。static intCHANNEL_PRESSURE通道压力(触发)消息(0xD0或208)的命令值。static intCONTINUE继续消息的状态字节(0xFB或251)。static intCONTROL_CHANGE控制更改消息(0xB0或176)的命令值。static intEND_OF_EXCLUSIVE系统专用消息结束(0xF7或247)的状态字节。static intMIDI_TIME_CODEMIDI时间码四分之一帧消息(0xF1或241)的状态字节。static intNOTE_OFF注释消息(0x80或128)的命令值。static intNOTE_ON注释消息(0x90或144)的命令值。static intPITCH_BENDPitch Bend消息的命令值(0xE0或224)。static intPOLY_PRESSURE复音键压力(触发后)消息(0xA0或160)的指令值。static intPROGRAM_CHANGE程序更改消息的指令值(0xC0或192)。static intSONG_POSITION_POINTER歌曲位置指针讯息的状态字节(0xF2或242)。static intSONG_SELECTMIDI乐曲的状态字节选择信息(0xF3或243)。static intSTART开始消息的状态字节(0xFA或250)。static intSTOP停止消息的状态字节(0xFC或252)。static intSYSTEM_RESET系统复位消息的状态字节(0xFF或255)。static intTIMING_CLOCK定时时钟消息的状态字节(0xF8或248)。static intTUNE_REQUESTTune请求消息的状态字节(0xF6或246)。-
Fields inherited from class javax.sound.midi.MidiMessage
data, length
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 ShortMessage()构造新的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消息,最多可以占用两个数据字节。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Objectclone()创建与该对象相同的类和新内容相同的新对象。intgetChannel()获取与此事件关联的MIDI通道。intgetCommand()获取与此事件相关联的MIDI命令。intgetData1()获取消息中的第一个数据字节。intgetData2()获取消息中的第二个数据字节。protected intgetDataLength(int status)检索与特定状态字节值相关联的数据字节数。voidsetMessage(int status)设置不含数据字节的MIDI消息的参数。voidsetMessage(int status, int data1, int data2)设置一个需要一个或两个数据字节的MIDI消息的参数。voidsetMessage(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 InvalidMidiDataExceptionShortMessagesetMessage- 参数
-
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 thestatusargument does not represent the status byte for any short message
-
-