Spec-Zone.ru › OpenJDK 25

Интерфейс MidiDevice

Все суперинтерфейсы:
AutoCloseable
Все известные подинтерфейсы:
Sequencer, Synthesizer
public interface MidiDevice extends AutoCloseable
MidiDevice — базовый интерфейс для всех MIDI-устройств. К распространённым устройствам относятся синтезаторы, секвенсоры, входные MIDI-порты и выходные MIDI-порты.

MidiDevice может быть передатчиком или приёмником MIDI-событий либо выполнять обе функции. Поэтому он может предоставлять экземпляры Transmitter или Receiver (либо и те, и другие). Обычно порты MIDI IN предоставляют передатчики, а порты MIDI OUT и синтезаторы — приёмники. Секвенсор обычно предоставляет передатчики для воспроизведения и приёмники для записи.

MidiDevice можно открыть и закрыть как явно, так и неявно. Для явного открытия вызывается open(), а для явного закрытия — close() для экземпляра MidiDevice. Если приложение явно открывает MidiDevice, оно должно явно закрыть его, чтобы освободить системные ресурсы и обеспечить корректное завершение работы приложения. Неявное открытие выполняется вызовами MidiSystem.getReceiver() и MidiSystem.getTransmitter(). MidiDevice, используемое MidiSystem.getReceiver и MidiSystem.getTransmitter, зависит от реализации, если не используются свойства javax.sound.midi.Receiver и javax.sound.midi.Transmitter (см. описание свойств для выбора поставщиков по умолчанию в MidiSystem). MidiDevice, открытое неявно, закрывается неявно при закрытии Receiver или Transmitter, вызвавшего его открытие. Если приложение получило более одного неявно открывающего Receiver или Transmitter, устройство закрывается после закрытия последнего Receiver или Transmitter. С другой стороны, вызов getReceiver или getTransmitter непосредственно для экземпляра устройства не открывает устройство неявно. Закрытие этих Transmitterов и Receiverов не закрывает устройство неявно. Чтобы использовать устройство с полученными таким образом Receiverами или Transmitterами, его необходимо явно открыть и закрыть.

Если для одного и того же экземпляра MidiDevice используются явные и неявные операции открытия и закрытия, применяются следующие правила:

  • После явного открытия (до или после неявных открытий) устройство не будет закрыто неявным закрытием. Единственный способ закрыть явно открытое устройство — выполнить явное закрытие.
  • Явное закрытие всегда закрывает устройство, даже если оно также было открыто неявно. Последующее неявное закрытие не оказывает дополнительного действия.
Чтобы определить, представляет ли MidiDevice аппаратный MIDI-порт, можно использовать следующий программный приём:
MidiDevice device = ...;
if (!(device instanceof Sequencer) && !(device instanceof Synthesizer)) {
  // we're now sure that device represents a MIDI port
  // ...
}

MidiDevice включает объект MidiDevice.Info, содержащий сведения о производителе и другую информацию.

См. также:
  • Synthesizer
  • Sequencer
  • Receiver
  • Transmitter

Краткое описание вложенных классов

Модификатор и тип Интерфейс Описание
static class  MidiDevice.Info
Объект MidiDevice.Info содержит различные данные о MidiDevice, включая его название, создавшую его компанию и описательный текст.

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

Модификатор и тип Метод Описание
void close()
Закрывает устройство, указывая, что оно должно освободить все используемые им системные ресурсы.
MidiDevice.Info getDeviceInfo()
Получает сведения об устройстве, включая его класс Java и Strings, содержащий его название, производителя и описание.
int getMaxReceivers()
Получает максимальное количество подключений MIDI IN, доступных на этом MIDI-устройстве для приёма MIDI-данных.
int getMaxTransmitters()
Получает максимальное количество подключений MIDI OUT, доступных на этом MIDI-устройстве для передачи MIDI-данных.
long getMicrosecondPosition()
Получает текущую временную метку устройства в микросекундах.
Receiver getReceiver()
Получает приёмник MIDI IN, через который MIDI-устройство может получать MIDI-данные.
List<Receiver> getReceivers()
Возвращает все активные в данный момент, не закрытые приёмники, подключённые к этому MidiDevice.
Transmitter getTransmitter()
Получает подключение MIDI OUT, через которое MIDI-устройство будет передавать MIDI-данные.
List<Transmitter> getTransmitters()
Возвращает все активные в данный момент, не закрытые передатчики, подключённые к этому MidiDevice.
boolean isOpen()
Сообщает, открыто ли устройство.
void open()
Открывает устройство, указывая, что оно должно получить необходимые системные ресурсы и перейти в рабочее состояние.

Подробное описание методов

getDeviceInfo

MidiDevice.Info getDeviceInfo()
Получает сведения об устройстве, включая его класс Java и Strings, содержащий его название, производителя и описание.
Возвращает:
сведения об устройстве

open

void open() throws MidiUnavailableException
Открывает устройство, указывая, что оно должно получить необходимые системные ресурсы и перейти в рабочее состояние.

Приложение, явно открывающее устройство этим вызовом, должно закрыть его вызовом close(). Это необходимо для освобождения системных ресурсов и корректного завершения работы приложений.

Обратите внимание: некоторые устройства после закрытия невозможно открыть повторно. Попытки повторно открыть такое устройство всегда приводят к MidiUnavailableException.

Вызывает исключение:
MidiUnavailableException — возникает, если устройство невозможно открыть из-за ограничений ресурсов
См. также:
  • close()
  • isOpen()

close

void close()
Закрывает устройство, указывая, что оно должно освободить все используемые им системные ресурсы.

Все открытые экземпляры Receiver и Transmitter этого устройства закрываются. Это также относится к экземплярам, полученным с помощью MidiSystem.

Определено в:
close в интерфейсе AutoCloseable
См. также:
  • open()
  • isOpen()

isOpen

boolean isOpen()
Сообщает, открыто ли устройство.
Возвращает:
true, если устройство открыто, иначе false
См. также:
  • open()
  • close()

getMicrosecondPosition

long getMicrosecondPosition()
Получает текущую временную метку устройства в микросекундах. Если устройство поддерживает временные метки, оно должно начинать отсчёт с 0 при открытии и продолжать увеличивать значение временной метки в микросекундах до закрытия устройства. Если временные метки не поддерживаются, устройство всегда должно возвращать -1.
Возвращает:
текущую временную метку устройства в микросекундах или -1, если устройство не поддерживает временные метки

getMaxReceivers

int getMaxReceivers()
Получает максимальное количество подключений MIDI IN, доступных на этом MIDI-устройстве для приёма MIDI-данных.
Возвращает:
максимальное количество подключений MIDI IN или -1, если доступно неограниченное количество подключений

getMaxTransmitters

int getMaxTransmitters()
Получает максимальное количество подключений MIDI OUT, доступных на этом MIDI-устройстве для передачи MIDI-данных.
Возвращает:
максимальное количество подключений MIDI OUT или -1, если доступно неограниченное количество подключений

getReceiver

Receiver getReceiver() throws MidiUnavailableException
Получает приёмник MIDI IN, через который MIDI-устройство может получать MIDI-данные. Возвращённый приёмник необходимо закрыть после того, как приложение завершит работу с ним.

Обычно возвращённый приёмник реализует интерфейс MidiDeviceReceiver.

Получение Receiver с помощью этого метода не открывает устройство. Чтобы использовать устройство, необходимо явно открыть его вызовом open(). Закрытие Receiver также не закрывает устройство. Его необходимо явно закрыть вызовом close().

Возвращает:
приёмник устройства
Вызывает исключение:
MidiUnavailableException — возникает, если приёмник недоступен из-за ограничений ресурсов
См. также:
  • Receiver.close()

getReceivers

List<Receiver> getReceivers()
Возвращает все активные в данный момент, не закрытые приёмники, подключённые к этому MidiDevice. Приёмник можно отсоединить от устройства, закрыв его.

Обычно возвращённые приёмники реализуют интерфейс MidiDeviceReceiver.

Возвращает:
неизменяемый список открытых приёмников
Начиная с версии:
1.5

getTransmitter

Transmitter getTransmitter() throws MidiUnavailableException
Получает подключение MIDI OUT, через которое MIDI-устройство будет передавать MIDI-данные. Возвращённый передатчик необходимо закрыть после того, как приложение завершит работу с ним.

Обычно возвращённый передатчик реализует интерфейс MidiDeviceTransmitter.

Получение Transmitter с помощью этого метода не открывает устройство. Чтобы использовать устройство, необходимо явно открыть его вызовом open(). Закрытие Transmitter также не закрывает устройство. Его необходимо явно закрыть вызовом close().

Возвращает:
передатчик MIDI OUT устройства
Вызывает исключение:
MidiUnavailableException — возникает, если передатчик недоступен из-за ограничений ресурсов
См. также:
  • Transmitter.close()

getTransmitters

List<Transmitter> getTransmitters()
Возвращает все активные в данный момент, не закрытые передатчики, подключённые к этому MidiDevice. Передатчик можно отсоединить от устройства, закрыв его.

Обычно возвращённые передатчики реализуют интерфейс MidiDeviceTransmitter.

Возвращает:
неизменяемый список открытых передатчиков
Начиная с версии:
1.5

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/MidiDevice.html

Spec-Zone.ru

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