Интерфейс 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 device = ...;
if (!(device instanceof Sequencer) && !(device instanceof Synthesizer)) {
// we're now sure that device represents a MIDI port
// ...
}
Объект MidiDevice содержит объект MidiDevice.Info для предоставления информации о производителе и т. д.
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
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()
Strings, содержащий его имя, производителя и описание.- Возвращает:
- информация о устройстве
open
void open() throws MidiUnavailableException
Приложение, явно открывающее устройство с помощью этого вызова, должно закрыть устройство, вызвав close(). Это необходимо для освобождения системных ресурсов и для того, чтобы приложения могли корректно завершаться.
Обратите внимание, что некоторые устройства, после закрытия, не могут быть повторно открыты. Попытки повторного открытия такого устройства всегда приведут к MidiUnavailableException.
close
void close()
Все Receiver и Transmitter экземпляры, открытые из этого устройства, будут закрыты. Это включает в себя экземпляры, полученные через MidiSystem.
isOpen
boolean isOpen()
getMicrosecondPosition
long getMicrosecondPosition()
- Возвращает:
- текущую метку времени устройства в микросекундах или -1, если устройство не поддерживает метки времени
getMaxReceivers
int getMaxReceivers()
- Возвращает:
- максимальное количество подключений MIDI IN или -1, если количество подключений не ограничено
getMaxTransmitters
int getMaxTransmitters()
- Возвращает:
- максимальное количество подключений MIDI OUT или -1, если количество подключений не ограничено
getReceiver
Receiver getReceiver() throws MidiUnavailableException
Обычно возвращаемый приемник реализует интерфейс MidiDeviceReceiver.
Получение Receiver с помощью этого метода не открывает устройство. Для возможности использования устройства, оно должно быть открыто явно, вызвав open(). Также, закрытие Receiver не закрывает устройство. Оно должно быть закрыто явно, вызвав close().
- Возвращает:
- приемник устройства
- Выбрасывает:
-
MidiUnavailableException- выбрасывается, если приемник недоступен из-за ограничений ресурсов - См. также:
getReceivers
List<Receiver> getReceivers()
MidiDevice. Приемник может быть удален из устройства путем его закрытия. Обычно возвращаемые приемники реализуют интерфейс MidiDeviceReceiver.
- Возвращает:
- неизменяемый список открытых приемников
- С:
- 1.5
getTransmitter
Transmitter getTransmitter() throws MidiUnavailableException
Обычно возвращаемый передатчик реализует интерфейс MidiDeviceTransmitter.
Получение Transmitter с помощью этого метода не открывает устройство. Для возможности использования устройства, оно должно быть открыто явно, вызвав open(). Также, закрытие Transmitter не закрывает устройство. Оно должно быть закрыто явно, вызвав close().
- Возвращает:
- передатчик MIDI OUT для устройства
- Выбрасывает:
-
MidiUnavailableException- выбрасывается, если передатчик недоступен из-за ограничений ресурсов - См. также:
getTransmitters
List<Transmitter> getTransmitters()
MidiDevice. Передатчик может быть удален из устройства путем его закрытия. Обычно возвращаемые передатчики реализуют интерфейс MidiDeviceTransmitter.
- Возвращает:
- неизменяемый список открытых передатчиков
- С:
- 1.5
© 1993, 2021, 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/17/docs/api/java.desktop/javax/sound/midi/MidiDevice.html