Класс SysexMessage
- Все реализуемые интерфейсы:
Cloneable
public class SysexMessage extends MidiMessage
SysexMessage представляет системное эксклюзивное MIDI-сообщение. При чтении системного эксклюзивного сообщения из MIDI-файла его длина всегда определена. Данные системного эксклюзивного сообщения из MIDI-файла следует хранить в массиве данных SysexMessage следующим образом: байт состояния системного эксклюзивного сообщения (0xF0 или 0xF7), все байты данных сообщения и, наконец, флаг окончания эксклюзивного сообщения (0xF7). Поэтому длина, сообщаемая объектом SysexMessage, равна длине данных системного эксклюзивного сообщения плюс два: один байт для байта состояния и один для флага окончания эксклюзивного сообщения.
Согласно спецификации Standard MIDI Files, для SysexMessage, считываемого из MIDI-файла, допустимы два значения байта состояния:
- 0xF0: системное эксклюзивное сообщение (как в проводном протоколе MIDI)
- 0xF7: специальное системное эксклюзивное сообщение
SysexMessages. В этом случае длина системных эксклюзивных данных заранее неизвестна; конец этих данных обозначается флагом окончания эксклюзивного сообщения (0xF7) в потоке байтов MIDI по проводам. - 0xF0: системное эксклюзивное сообщение (как в проводном протоколе MIDI)
- 0xF7: окончание эксклюзивного сообщения (EOX)
SysexMessage, содержащий данные определенного системного эксклюзивного сообщения, должен иметь значение состояния 0xF0. Если это сообщение содержит все системные эксклюзивные данные данного сообщения, оно должно оканчиваться байтом состояния 0xF7 (EOX). В противном случае дополнительные системные эксклюзивные данные следует передавать в одном или нескольких объектах SysexMessages со значением состояния 0xF7. Объект SysexMessage, содержащий последние данные системного эксклюзивного сообщения, должен оканчиваться значением 0xF7 (EOX), обозначающим конец системного эксклюзивного сообщения. Если системные эксклюзивные данные из объектов SysexMessages передаются по проводному протоколу MIDI, следует передавать только начальный байт состояния 0xF0, сами системные эксклюзивные данные и конечный байт 0xF7 (EOX); любые байты состояния 0xF7, используемые для обозначения того, что SysexMessage содержит продолжающиеся системные эксклюзивные данные, не следует передавать по проводному протоколу MIDI.
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
SPECIAL_SYSTEM_EXCLUSIVE |
Байт состояния специального системного эксклюзивного сообщения (0xF7, или 247), используемый в MIDI-файлах. |
static final int |
SYSTEM_EXCLUSIVE |
Байт состояния системного эксклюзивного сообщения (0xF0, или 240). |
Поля, объявленные в классе MidiMessage
data, length | Модификатор и тип | Поле | Описание |
|---|---|---|
protected byte[] |
data |
Данные MIDI-сообщения. |
protected int |
length |
Количество байтов в MIDI-сообщении, включая байт состояния и все байты данных. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
| Создает новый объект SysexMessage. |
||
protected |
Создает новый объект SysexMessage. |
|
| Создает новый объект SysexMessage и задает данные сообщения. |
||
| Создает новый объект SysexMessage и задает данные сообщения. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создает новый объект того же класса с тем же содержимым, что и этот объект. |
byte[] |
getData() |
Получает копию данных системного эксклюзивного сообщения. |
void |
setMessage |
Задает данные системного эксклюзивного сообщения. |
void |
setMessage |
Задает данные системного эксклюзивного сообщения. |
Методы, объявленные в классе MidiMessage
getLength, getMessage, getStatus | Модификатор и тип | Метод | Описание |
|---|---|---|
int |
getLength() |
Получает общую длину MIDI-сообщения в байтах. |
byte[] |
getMessage() |
Получает данные MIDI-сообщения. |
int |
getStatus() |
Получает байт состояния MIDI-сообщения. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Определяет, является ли другой объект «равным» этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени. |
Подробное описание полей
SYSTEM_EXCLUSIVE
public static final int SYSTEM_EXCLUSIVE
- См. также:
SPECIAL_SYSTEM_EXCLUSIVE
public static final int SPECIAL_SYSTEM_EXCLUSIVE
- См. также:
Подробное описание конструкторов
SysexMessage
public SysexMessage()
SysexMessage. Гарантируется, что содержимое нового сообщения задает корректное MIDI-сообщение. Впоследствии содержимое сообщения можно задать с помощью одного из методов setMessage.- См. также:
SysexMessage
public SysexMessage(byte[] data, int length) throws InvalidMidiDataException
SysexMessage и задает данные сообщения. Первый байт массива данных должен быть допустимым байтом состояния системного эксклюзивного сообщения (0xF0 или 0xF7). Содержимое сообщения можно изменить с помощью одного из методов setMessage.- Параметры:
-
data— данные системного эксклюзивного сообщения, включая байт состояния -
length— длина допустимых данных сообщения в массиве, включая байт состояния; значение должно быть неотрицательным и не превышатьdata.length - Исключения:
-
InvalidMidiDataException— если значения параметров не задают корректное метасообщение MIDI - С версии:
- 1.7
- См. также:
SysexMessage
public SysexMessage(int status, byte[] data, int length) throws InvalidMidiDataException
SysexMessage и задает данные сообщения. Содержимое сообщения можно изменить с помощью одного из методов setMessage.- Параметры:
-
status— байт состояния сообщения; он должен быть допустимым байтом состояния системного эксклюзивного сообщения (0xF0 или 0xF7) -
data— данные системного эксклюзивного сообщения (без байта состояния) -
length— длина допустимых данных сообщения в массиве; значение должно быть неотрицательным и не превышатьdata.length - Исключения:
-
InvalidMidiDataException— если значения параметров не задают корректное системное эксклюзивное MIDI-сообщение - С версии:
- 1.7
- См. также:
SysexMessage
protected SysexMessage(byte[] data)
SysexMessage.- Параметры:
-
data— массив байтов, содержащий сообщение целиком. Данные сообщения можно изменить с помощью методаsetMessage. - См. также:
Подробное описание методов
setMessage
public void setMessage(byte[] data, int length) throws InvalidMidiDataException
- Переопределяет:
-
setMessageв классеMidiMessage - Параметры:
-
data— данные системного эксклюзивного сообщения -
length— длина допустимых данных сообщения в массиве, включая байт состояния - Исключения:
-
InvalidMidiDataException— если значения параметров не задают корректное системное эксклюзивное MIDI-сообщение
setMessage
public void setMessage(int status, byte[] data, int length) throws InvalidMidiDataException
- Параметры:
-
status— байт состояния сообщения (0xF0 или 0xF7) -
data— данные системного эксклюзивного сообщения -
length— длина допустимых данных сообщения в массиве - Исключения:
-
InvalidMidiDataException— если байт состояния недопустим для системного эксклюзивного сообщения
getData
public byte[] getData()
- Возвращает:
- массив, содержащий данные системного эксклюзивного сообщения
clone
public Object clone()
- Определен в:
-
cloneв классеMidiMessage - Возвращает:
- копию этого экземпляра
- См. также:
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.