Интерфейс 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 - выбрасывается, если устройство не может быть открыто из-за ограничений ресурсов
SecurityException - выбрасывается, если устройство не может быть открыто из-за ограничений безопасности
См. также:
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 ВХОД на этом MIDI-устройстве для получения данных MIDI.

Возвращает:
максимальное количество подключений MIDI ВХОД, или -1, если доступно неограниченное количество подключений

getMaxTransmitters

int getMaxTransmitters()

Получает максимальное количество подключений MIDI ВЫХОД, доступных на этом MIDI-устройстве для передачи данных MIDI.

Возвращает:
максимальное количество подключений MIDI ВЫХОД, или -1, если доступно неограниченное количество подключений

getReceiver

Receiver getReceiver()
              throws MidiUnavailableException

Получает приемник MIDI ВХОД, через который MIDI-устройство может получать данные MIDI. Возвращенный приемник должен быть закрыт, когда приложение закончит его использование.

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

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

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

getReceivers

List<Receiver> getReceivers()

Возвращает все активные, не закрытые приемники, подключенные к этому MidiDevice. Приемник можно удалить из устройства, закрыв его.

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

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

getTransmitter

Transmitter getTransmitter()
                    throws MidiUnavailableException

Получает подключение MIDI ВЫХОД, с которого MIDI-устройство будет передавать данные MIDI. Возвращенный передатчик должен быть закрыт, когда приложение закончит его использование.

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

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

Возвращает:
передатчик MIDI ВЫХОД для устройства
Исключение:
MidiUnavailableException - выбрасывается, если передатчик недоступен из-за ограничений ресурсов
См. также:
Transmitter.close()

getTransmitters

List<Transmitter> getTransmitters()

Возвращает все активные, не закрытые передатчики, подключенные к этому MidiDevice. Передатчик можно удалить из устройства, закрыв его.

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

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

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

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