Spec-Zone.ru › OpenJDK 27

Класс SysexMessage

java.lang.Object
javax.sound.midi.MidiMessage
javax.sound.midi.SysexMessage
Все реализуемые интерфейсы:
Cloneable
public class SysexMessage extends MidiMessage
Объект SysexMessage представляет системное эксклюзивное MIDI-сообщение.

При чтении системного эксклюзивного сообщения из MIDI-файла его длина всегда определена. Данные системного эксклюзивного сообщения из MIDI-файла следует хранить в массиве данных SysexMessage следующим образом: байт состояния системного эксклюзивного сообщения (0xF0 или 0xF7), все байты данных сообщения и, наконец, флаг окончания эксклюзивного сообщения (0xF7). Поэтому длина, сообщаемая объектом SysexMessage, равна длине данных системного эксклюзивного сообщения плюс два: один байт для байта состояния и один для флага окончания эксклюзивного сообщения.

Согласно спецификации Standard MIDI Files, для SysexMessage, считываемого из MIDI-файла, допустимы два значения байта состояния:

  • 0xF0: системное эксклюзивное сообщение (как в проводном протоколе MIDI)
  • 0xF7: специальное системное эксклюзивное сообщение
При использовании Java Sound для обработки системных эксклюзивных данных, получаемых по проводному протоколу MIDI, данные следует помещать в один или несколько объектов 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()
SysexMessage(byte[] data)
SysexMessage(byte[] data, int length)
SysexMessage(int status, byte[] data, int length)
Модификатор Конструктор Описание
Создает новый объект SysexMessage.
protected
Создает новый объект SysexMessage.
Создает новый объект SysexMessage и задает данные сообщения.
Создает новый объект SysexMessage и задает данные сообщения.

Краткое описание методов

Модификатор и тип Метод Описание
Object clone()
Создает новый объект того же класса с тем же содержимым, что и этот объект.
byte[] getData()
Получает копию данных системного эксклюзивного сообщения.
void setMessage(byte[] data, int length)
Задает данные системного эксклюзивного сообщения.
void setMessage(int status, byte[] data, int length)
Задает данные системного эксклюзивного сообщения.

Методы, объявленные в классе 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(Object obj)
Определяет, является ли другой объект «равным» этому объекту.
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(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени.

Подробное описание полей

SYSTEM_EXCLUSIVE

public static final int SYSTEM_EXCLUSIVE
Байт состояния системного эксклюзивного сообщения (0xF0, или 240).
См. также:
  • MidiMessage.getStatus()
  • Значения константных полей

SPECIAL_SYSTEM_EXCLUSIVE

public static final int SPECIAL_SYSTEM_EXCLUSIVE
Байт состояния специального системного эксклюзивного сообщения (0xF7, или 247), используемый в MIDI-файлах. Он имеет то же значение, что и END_OF_EXCLUSIVE, используемое в протоколе реального времени «MIDI по проводам».
См. также:
  • MidiMessage.getStatus()
  • Значения константных полей

Подробное описание конструкторов

SysexMessage

public SysexMessage()
Создает новый объект SysexMessage. Гарантируется, что содержимое нового сообщения задает корректное MIDI-сообщение. Впоследствии содержимое сообщения можно задать с помощью одного из методов setMessage.
См. также:
  • setMessage(byte[], int)

SysexMessage

public SysexMessage(byte[] data, int length) throws InvalidMidiDataException
Создает новый объект SysexMessage и задает данные сообщения. Первый байт массива данных должен быть допустимым байтом состояния системного эксклюзивного сообщения (0xF0 или 0xF7). Содержимое сообщения можно изменить с помощью одного из методов setMessage.
Параметры:
data — данные системного эксклюзивного сообщения, включая байт состояния
length — длина допустимых данных сообщения в массиве, включая байт состояния; значение должно быть неотрицательным и не превышать data.length
Исключения:
InvalidMidiDataException — если значения параметров не задают корректное метасообщение MIDI
С версии:
1.7
См. также:
  • setMessage(byte[], int)
  • setMessage(int, byte[], int)
  • getData()

SysexMessage

public SysexMessage(int status, byte[] data, int length) throws InvalidMidiDataException
Создает новый объект SysexMessage и задает данные сообщения. Содержимое сообщения можно изменить с помощью одного из методов setMessage.
Параметры:
status — байт состояния сообщения; он должен быть допустимым байтом состояния системного эксклюзивного сообщения (0xF0 или 0xF7)
data — данные системного эксклюзивного сообщения (без байта состояния)
length — длина допустимых данных сообщения в массиве; значение должно быть неотрицательным и не превышать data.length
Исключения:
InvalidMidiDataException — если значения параметров не задают корректное системное эксклюзивное MIDI-сообщение
С версии:
1.7
См. также:
  • setMessage(byte[], int)
  • setMessage(int, byte[], int)
  • getData()

SysexMessage

protected SysexMessage(byte[] data)
Создает новый объект SysexMessage.
Параметры:
data — массив байтов, содержащий сообщение целиком. Данные сообщения можно изменить с помощью метода setMessage.
См. также:
  • setMessage(byte[], int)

Подробное описание методов

setMessage

public void setMessage(byte[] data, int length) throws InvalidMidiDataException
Задает данные системного эксклюзивного сообщения. Первый байт массива данных должен быть допустимым байтом состояния системного эксклюзивного сообщения (0xF0 или 0xF7).
Переопределяет:
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
Возвращает:
копию этого экземпляра
См. также:
  • Cloneable

Сообщить об ошибке или предложить улучшение
Дополнительные сведения о справочнике API и документации для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API