Класс SysexMessage

Все реализованные интерфейсы:
Cloneable
public class SysexMessage
extends MidiMessage

Объект типа SysexMessage представляет сообщение MIDI системы исключения.

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

Как предписывает спецификация стандартных файлов MIDI, два значения байта статуса допустимы для 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 intSPECIAL_SYSTEM_EXCLUSIVE

Байт статуса для специального сообщения системы исключения (0xF7, или 247), используемого в файлах MIDI.

static intSYSTEM_EXCLUSIVE

Байт статуса для сообщения системы исключения (0xF0, или 240).

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

data, length

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

МодификаторКонструкторОписание
SysexMessage()

Создаёт новый SysexMessage.

protected SysexMessage​(byte[] data)

Создаёт новый SysexMessage.

SysexMessage​(byte[] data, int length)

Создаёт новый SysexMessage и задаёт данные для сообщения.

SysexMessage​(int status, byte[] data, int length)

Создаёт новый SysexMessage и задаёт данные для сообщения.

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

Модификатор и типМетодОписание
Objectclone()

Создаёт новый объект того же класса с теми же данными, что и этот объект.

byte[]getData()

Получает копию данных для сообщения системы исключения.

voidsetMessage​(byte[] data, int length)

Задает данные для сообщения системы исключения.

voidsetMessage​(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

Байт статуса для сообщения системы исключения (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

© 1993, 2020, 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/11/docs/api/java.desktop/javax/sound/midi/SysexMessage.html

Spec-Zone .ru
спецификации, руководства, описания, API