Spec-Zone.ru › OpenJDK 25

Class 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 wire)
  • 0xF7: специальное системное эксклюзивное сообщение
При использовании Java Sound для обработки системных эксклюзивных данных, получаемых по протоколу MIDI wire, данные следует помещать в один или несколько объектов 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()
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

Методы, объявленные в классе Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

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 wire».
См. также:
  • 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/sound/midi/SysexMessage.html

Spec-Zone.ru

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