Spec-Zone.ru › OpenJDK 17

Класс 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, 2021, 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/17/docs/api/java.desktop/javax/sound/midi/SysexMessage.html

Spec-Zone.ru

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