Класс MidiMessage
- java.lang.Object
-
- javax.sound.midi.MidiMessage
- Все реализованные интерфейсы:
Cloneable
- Непосредственные известные подклассы:
-
MetaMessage,ShortMessage,SysexMessage
public abstract class MidiMessage extends Object implements Cloneable
MidiMessage — это базовый класс для сообщений MIDI. Они включают не только стандартные сообщения MIDI, на которые может реагировать синтезатор, но и «мета-события», которые могут использоваться программами секвенсоров. Существуют мета-события для такой информации, как тексты, авторские права, указания темпа, временные и тональные сигнатуры, маркеры и т. д. Более подробную информацию см. в спецификации Стандартных файлов MIDI 1.0, которая является частью Полной подробной спецификации MIDI 1.0, опубликованной Ассоциацией производителей MIDI (http://www.midi.org).
Базовый MidiMessage класс предоставляет доступ к трём типам информации о сообщении MIDI:
- Статус-байт сообщения
- Полная длина сообщения в байтах (статус-байт плюс любые данные байты)
- Массив байтов, содержащий полное сообщение
MidiMessage включает методы для получения, но не установки этих значений. Установка — это ответственность подклассов.Стандарт MIDI выражает данные MIDI в байтах. Однако, поскольку Java™ использует знакомые байты, API Java Sound использует целые числа вместо байтов при выражении данных MIDI. Например, метод getStatus() класса MidiMessage возвращает статус-байты MIDI как целые числа. Если вы обрабатываете данные MIDI, полученные за пределами Java Sound и теперь закодированные как знакомые байты, байты можно преобразовать в целые числа с помощью этого преобразования:
int i = (int)(byte & 0xFF)
Если вам просто нужно передать известное значение байта MIDI в качестве параметра метода, его можно выразить непосредственно как целое число, используя (например), десятичную или шестнадцатеричную запись. Например, чтобы передать статус-байт «активного обнаружения» в качестве первого аргумента методу setMessage(int) класса ShortMessage, вы можете выразить его как 254 или 0xFE.
- См. также:
-
Track,Sequence,Receiver
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected byte[] | data | Данные сообщения MIDI. |
protected int | length | Количество байтов в сообщении MIDI, включая статус-байт и любые данные байты. |
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | MidiMessage(byte[] data) | Создаёт новый |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Object | clone() | Создаёт новый объект того же класса и с тем же содержимым, что и этот объект. |
int | getLength() | Получает полную длину сообщения MIDI в байтах. |
byte[] | getMessage() | Получает данные сообщения MIDI. |
int | getStatus() | Получает статус-байт для сообщения MIDI. |
protected void | setMessage(byte[] data,
int length) | Устанавливает данные для сообщения MIDI. |
Методы, объявленные в классе java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitПоля
data
protected byte[] data
Данные сообщения MIDI. Первый байт — это статус-байт сообщения; последующие байты до длины сообщения — это данные байты для этого сообщения.
- См. также:
getLength()
length
protected int length
Количество байтов в сообщении MIDI, включая статус-байт и любые данные байты.
- См. также:
getLength()
Конструкторы
MidiMessage
protected MidiMessage(byte[] data)
Создаёт новый MidiMessage. Этот защищённый конструктор вызывается конкретными подклассами, которые должны гарантировать, что массив данных определяет полное, корректное сообщение MIDI.
- Параметры:
-
data— массив байтов, содержащий полное сообщение. Данные сообщения могут быть изменены с помощью методаsetMessage. - См. также:
setMessage(byte[], int)
Методы
setMessage
protected void setMessage(byte[] data,
int length)
throws InvalidMidiDataExceptionУстанавливает данные для сообщения MIDI. Этот защищённый метод вызывается конкретными подклассами, которые должны гарантировать, что массив данных определяет полное, корректное сообщение MIDI.
- Параметры:
-
data— данные байты в сообщении MIDI -
length— количество байтов в массиве данных байтов - Исключения:
-
InvalidMidiDataException— если значения параметров не определяют корректное мета-сообщение MIDI
getMessage
public byte[] getMessage()
Получает данные сообщения MIDI. Первый байт возвращаемого массива байтов — это статус-байт сообщения. Любые последующие байты до длины сообщения — это данные байты. Массив байтов может иметь длину, которая больше длины фактического сообщения; полная длина сообщения в байтах сообщается методом getLength().
- Возвращает:
- массив байтов, содержащий полные данные
MidiMessage
getStatus
public int getStatus()
Получает статус-байт для сообщения MIDI. Статус «байт» представлен как целое число; см. обсуждение в разделе описания класса MidiMessage.
- Возвращает:
- целочисленное представление статус-байта этого события
getLength
public int getLength()
Получает полную длину сообщения MIDI в байтах. Сообщение MIDI состоит из одного статус-байта и нуля или более данных байтов. Возвращаемое значение колеблется от 1 для сообщений реального времени системы до 2 или 3 для сообщений канала и любого значения для мета- и системных эксклюзивных сообщений.
- Возвращает:
- длину сообщения в байтах
clone
public abstract Object clone()
Создаёт новый объект того же класса и с тем же содержимым, что и этот объект.
© 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/MidiMessage.html