Spec-Zone.ru › OpenJDK 21

Класс 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-провод».
См. также:
  • 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, 2023, 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/21/docs/api/java.desktop/javax/sound/midi/SysexMessage.html

Spec-Zone.ru

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