Spec-Zone.ru › OpenJDK 24

Класс 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).

Поля, объявленные в классе javax.sound.midi.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)
Устанавливает данные для сообщения системы эксклюзивного типа.

Методы, объявленные в классе javax.sound.midi.MidiMessage

getLength, getMessage, getStatus

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

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

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

SYSTEM_EXCLUSIVE

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

SPECIAL_SYSTEM_EXCLUSIVE

public static final int SPECIAL_SYSTEM_EXCLUSIVE
Байт состояния для сообщения 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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/sound/midi/SysexMessage.html

Spec-Zone.ru

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