Class SysexMessage
- Все реализуемые интерфейсы:
Cloneable
public class SysexMessage extends MidiMessage
SysexMessage представляет системное эксклюзивное сообщение MIDI. При чтении системного эксклюзивного сообщения из MIDI-файла его длина всегда определена. Данные системного эксклюзивного сообщения из MIDI-файла следует хранить в массиве данных объекта SysexMessage следующим образом: байт состояния системного эксклюзивного сообщения (0xF0 или 0xF7), все байты данных сообщения и, наконец, флаг конца эксклюзивного сообщения (0xF7). Поэтому длина, сообщаемая объектом SysexMessage, равна длине данных системного эксклюзивного сообщения плюс два: один байт для байта состояния и один для флага конца эксклюзивного сообщения.
Согласно спецификации Standard MIDI Files, для объекта SysexMessage, считанного из MIDI-файла, допустимы два значения байта состояния:
- 0xF0: системное эксклюзивное сообщение (как и в протоколе MIDI wire)
- 0xF7: специальное системное эксклюзивное сообщение
SysexMessages. В этом случае длина системных эксклюзивных данных заранее неизвестна; конец этих данных отмечается флагом конца эксклюзивного сообщения (0xF7) в потоке байтов MIDI wire. - 0xF0: системное эксклюзивное сообщение (как и в протоколе MIDI wire)
- 0xF7: конец эксклюзивного сообщения (EOX)
SysexMessage, содержащий данные определенного системного эксклюзивного сообщения, должен иметь значение состояния 0xF0. Если это сообщение содержит все системные эксклюзивные данные для данного сообщения, оно должно заканчиваться байтом состояния 0xF7 (EOX). В противном случае дополнительные системные эксклюзивные данные следует передать в одном или нескольких объектах SysexMessages со значением состояния 0xF7. Объект SysexMessage, содержащий последние данные системного эксклюзивного сообщения, должен заканчиваться значением 0xF7 (EOX), обозначающим конец системного эксклюзивного сообщения. Если системные эксклюзивные данные из объектов SysexMessages передаются по протоколу MIDI wire, следует передавать только начальный байт состояния 0xF0, сами системные эксклюзивные данные и конечный байт 0xF7 (EOX); любые байты состояния 0xF7, используемые для обозначения того, что объект SysexMessage содержит продолжающиеся системные эксклюзивные данные, передавать по протоколу MIDI wire не следует.
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
SPECIAL_SYSTEM_EXCLUSIVE |
Байт состояния специального системного эксклюзивного сообщения (0xF7 или 247), используемый в MIDI-файлах. |
static final int |
SYSTEM_EXCLUSIVE |
Байт состояния системного эксклюзивного сообщения (0xF0 или 240). |
Поля, объявленные в классе MidiMessage
data, length
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
| Создает новый объект SysexMessage. |
||
protected |
Создает новый объект SysexMessage. |
|
| Создает новый объект SysexMessage и задает данные сообщения. |
||
| Создает новый объект SysexMessage и задает данные сообщения. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создает новый объект того же класса с тем же содержимым, что и у этого объекта. |
byte[] |
getData() |
Получает копию данных системного эксклюзивного сообщения. |
void |
setMessage |
Задает данные системного эксклюзивного сообщения. |
void |
setMessage |
Задает данные системного эксклюзивного сообщения. |
Методы, объявленные в классе MidiMessage
getLength, getMessage, getStatus
Подробное описание полей
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/sound/midi/SysexMessage.html