Интерфейс Line
- Все суперинтерфейсы:
AutoCloseable
- Все известные подинтерфейсы:
Clip, DataLine, Mixer, Port, SourceDataLine, TargetDataLine
public interface Line extends AutoCloseable
Line представляет собой аудиопоток с одним или несколькими каналами. Линия является элементом цифрового «конвейера» обработки аудио, например микшером, входным или выходным портом либо каналом передачи данных в микшер или из него. У линии могут быть элементы управления, например усиление, панорамирование и реверберация. Сами элементы управления являются экземплярами классов, расширяющих базовый класс Control. Интерфейс Line предоставляет два метода доступа для получения элементов управления линии: getControls возвращает весь набор, а getControl возвращает один элемент управления указанного типа.
В разные моменты времени линии могут находиться в различных состояниях. При открытии линии она резервирует системные ресурсы, а при закрытии эти ресурсы освобождаются для других объектов или приложений. Метод isOpen() позволяет определить, открыта или закрыта линия. Однако открытая линия не обязательно обрабатывает данные. Такая обработка обычно запускается методами подинтерфейсов, например SourceDataLine.write и TargetDataLine.read.
Можно зарегистрировать объект, который будет получать уведомления при каждом изменении состояния линии. Объект должен реализовывать интерфейс LineListener, состоящий из единственного метода update. Этот метод вызывается при открытии и закрытии линии, а также при запуске и остановке, если линия является DataLine.
Один объект можно зарегистрировать для прослушивания нескольких линий. В событии, полученном его методом update, указывается, какая линия создала событие, каков его тип (OPEN, CLOSE, START или STOP), а также сколько звуковых кадров обработала линия к моменту возникновения события.
- С версии:
- 1.3
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static class |
Line.Info |
Объект Line.Info содержит сведения о линии. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addLineListener |
Добавляет прослушиватель к этой линии. |
void |
close() |
Закрывает линию, указывая, что используемые ею системные ресурсы можно освободить. |
Control |
getControl |
Получает элемент управления указанного типа, если он существует. |
Control[] |
getControls() |
Получает набор элементов управления, связанных с этой линией. |
Line.Info |
getLineInfo() |
Получает объект Line.Info с описанием этой линии. |
boolean |
isControlSupported |
Указывает, поддерживает ли линия элемент управления указанного типа. |
boolean |
isOpen() |
Указывает, открыта ли линия, то есть зарезервировала ли она системные ресурсы и готова ли к работе, даже если в данный момент не воспроизводит и не записывает звук. |
void |
open() |
Открывает линию, указывая, что она должна получить все необходимые системные ресурсы и перейти в рабочее состояние. |
void |
removeLineListener |
Удаляет указанный прослушиватель из списка прослушивателей этой линии. |
Подробное описание методов
getLineInfo
Line.Info getLineInfo()
Line.Info с описанием этой линии.- Возвращает:
- описание линии
open
void open() throws LineUnavailableException
OPEN. Обратите внимание, что некоторые линии после закрытия нельзя открыть повторно. Попытка повторно открыть такую линию всегда приводит к LineUnavailableException.
Некоторые типы линий имеют настраиваемые свойства, которые могут влиять на выделение ресурсов. Например, DataLine необходимо открыть с определенным форматом и размером буфера. Такие линии должны предоставлять механизм настройки этих свойств, например дополнительный метод или методы open, позволяющие приложению указать желаемые параметры.
Этот метод не принимает аргументов и открывает линию с текущими настройками. Для объектов SourceDataLine и TargetDataLine это означает, что линия открывается с настройками по умолчанию. Однако для объекта Clip размер буфера определяется при загрузке данных. Поскольку этот метод не позволяет приложению указать данные для загрузки, выбрасывается IllegalArgumentException. Поэтому вместо него следует использовать один из методов open, предоставляемых интерфейсом Clip, чтобы загрузить данные в Clip.
Для DataLine, если объект DataLine.Info, использованный для получения линии, задает хотя бы один полностью определенный аудиоформат, в качестве формата по умолчанию будет использоваться последний из них.
- Выбрасывает:
-
IllegalArgumentException— если этот метод вызван для экземпляра Clip -
LineUnavailableException— если линию невозможно открыть из-за ограничений ресурсов - См. также:
close
void close()
CLOSE.- Переопределяет:
-
closeв интерфейсеAutoCloseable - См. также:
isOpen
boolean isOpen()
- Возвращает:
-
true, если линия открыта; в противном случае —false - См. также:
getControls
Control[] getControls()
- Возвращает:
- массив элементов управления
- См. также:
isControlSupported
boolean isControlSupported(Control.Type control)
- Параметры:
-
control— тип элемента управления, поддержку которого необходимо проверить - Возвращает:
-
true, если поддерживается хотя бы один элемент управления указанного типа; в противном случае —false
getControl
Control getControl(Control.Type control)
- Параметры:
-
control— тип запрашиваемого элемента управления - Возвращает:
- элемент управления указанного типа
- Выбрасывает:
-
IllegalArgumentException— если элемент управления указанного типа не поддерживается - См. также:
addLineListener
void addLineListener(LineListener listener)
update() прослушивателя с объектом LineEvent, описывающим изменение.- Параметры:
-
listener— объект, добавляемый в качестве прослушивателя этой линии - См. также:
removeLineListener
void removeLineListener(LineListener listener)
- Параметры:
-
listener— прослушиватель, подлежащий удалению - См. также:
© 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/sampled/Line.html