Класс MidiMessage
- Все реализованные интерфейсы:
Cloneable
- Прямые известные подклассы:
MetaMessage, ShortMessage, SysexMessage
public abstract class MidiMessage extends Object implements Cloneable
MidiMessage — базовый класс для MIDI-сообщений. К ним относятся не только стандартные MIDI-сообщения, на которые может реагировать синтезатор, но и «метасобытия», которые могут использовать программы-секвенсоры. Метасобытия предназначены для хранения такой информации, как тексты песен, авторские права, указания темпа, размер и тональность, маркеры и т. д. Дополнительные сведения см. в спецификации Standard MIDI Files 1.0, входящей в полную подробную спецификацию MIDI 1.0, опубликованную Ассоциацией производителей MIDI (http://www.midi.org). Базовый класс MidiMessage предоставляет доступ к трем типам информации о MIDI-сообщении:
- Байт состояния сообщения
- Общая длина сообщения в байтах (байт состояния плюс байты данных, если они есть)
- Массив байтов, содержащий сообщение целиком
MidiMessage содержит методы для получения этих значений, но не для их установки. Их установка возлагается на подкласс. Стандарт MIDI представляет данные MIDI в виде байтов. Однако, поскольку в Java используются знаковые байты, Java Sound API использует для представления данных MIDI целые числа вместо байтов. Например, метод getStatus() класса MidiMessage возвращает байты состояния MIDI в виде целых чисел. Если вы обрабатываете данные MIDI, полученные вне Java Sound и закодированные в виде знаковых байтов, их можно преобразовать в целые числа следующим образом:
int i = (int)(byte & 0xFF)
Если вам нужно просто передать известное значение байта MIDI в качестве параметра метода, его можно указать непосредственно как целое число, например в десятичной или шестнадцатеричной системе счисления. Например, чтобы передать байт состояния «активного зондирования» в качестве первого аргумента методу setMessage(int) класса ShortMessage, можно указать значение 254 или 0xFE.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected byte[] |
data |
Данные MIDI-сообщения. |
protected int |
length |
Количество байтов в MIDI-сообщении, включая байт состояния и все байты данных. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает новый MidiMessage. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Object |
clone() |
Создает новый объект того же класса с тем же содержимым, что и этот объект. |
int |
getLength() |
Возвращает общую длину MIDI-сообщения в байтах. |
byte[] |
getMessage() |
Возвращает данные MIDI-сообщения. |
int |
getStatus() |
Возвращает байт состояния MIDI-сообщения. |
protected void |
setMessage |
Устанавливает данные MIDI-сообщения. |
Подробное описание полей
data
protected byte[] data
- См. также:
length
protected int length
- См. также:
Подробное описание конструкторов
MidiMessage
protected MidiMessage(byte[] data)
MidiMessage. Этот защищенный конструктор вызывается конкретными подклассами, которые должны обеспечить, чтобы массив данных содержал полное допустимое MIDI-сообщение.- Параметры:
-
data— массив байтов, содержащий сообщение целиком. Данные сообщения можно изменить с помощью методаsetMessage. - См. также:
Подробное описание методов
setMessage
protected void setMessage(byte[] data, int length) throws InvalidMidiDataException
- Параметры:
-
data— байты данных MIDI-сообщения -
length— количество байтов в массиве байтов данных - Исключения:
-
InvalidMidiDataException— если значения параметров не задают допустимое метасообщение MIDI
getMessage
public byte[] getMessage()
getLength().- Возвращает:
- массив байтов, содержащий данные
MidiMessageцеликом
getStatus
public int getStatus()
MidiMessage.- Возвращает:
- целочисленное представление байта состояния этого события
getLength
public int getLength()
- Возвращает:
- длина сообщения в байтах
clone
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/sound/midi/MidiMessage.html