Интерфейс 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 для предоставления информации о производителе и т. д.
- См. также:
-
Synthesizer,Sequencer,Receiver,Transmitter
Вложенные классы
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static class | MidiDevice.Info | Объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | close() | Закрывает устройство, указывая, что оно должно освободить все используемые системные ресурсы. |
MidiDevice.Info | getDeviceInfo() | Получает информацию об устройстве, включая его класс Java и |
int | getMaxReceivers() | Получает максимальное количество подключений MIDI ВХОД, доступных на этом устройстве MIDI для приёма данных MIDI. |
int | getMaxTransmitters() | Получает максимальное количество подключений MIDI ВЫХОД, доступных на этом устройстве MIDI для передачи данных MIDI. |
long | getMicrosecondPosition() | Получает текущую отметку времени устройства в микросекундах. |
Receiver | getReceiver() | Получает приемник MIDI ВХОД, через который устройство MIDI может принимать данные MIDI. |
List<Receiver> | getReceivers() | Возвращает все активные, не закрытые приемники, подключенные к этому |
Transmitter | getTransmitter() | Получает подключение MIDI ВЫХОД, через которое устройство MIDI будет передавать данные MIDI. |
List<Transmitter> | getTransmitters() | Возвращает все активные, не закрытые передатчики, подключенные к этому |
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()
Сообщает, открыто ли устройство.
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