Spec-Zone.ru › OpenJDK 24

Интерфейс MidiDevice

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

Устройство MidiDevice может быть передатчиком или приемником событий MIDI, или тем и другим. Поэтому оно может предоставлять Transmitter или Receiver объекты (или оба). Как правило, порты MIDI ВХОД предоставляют передатчики, порты MIDI ВЫХОД и синтезаторы предоставляют приемники. Секвенсор обычно предоставляет передатчики для воспроизведения и приемники для записи.

Устройство 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 ВХОД, доступных на этом устройстве MIDI для приема данных MIDI.
int getMaxTransmitters()
Получает максимальное количество подключений MIDI ВЫХОД, доступных на этом устройстве MIDI для передачи данных MIDI.
long getMicrosecondPosition()
Получает текущую временную метку устройства в микросекундах.
Receiver getReceiver()
Получает приемник MIDI ВХОД, через который устройство MIDI может принимать данные MIDI.
List<Receiver> getReceivers()
Возвращает все активные, не закрытые приемники, подключенные к этому устройству MidiDevice.
Transmitter getTransmitter()
Получает подключение MIDI ВЫХОД, с помощью которого устройство 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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/sound/midi/MidiDevice.html

Spec-Zone.ru

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