Интерфейс 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- если линия не может быть открыта из-за ограничений ресурсов -
SecurityException- если линия не может быть открыта из-за ограничений безопасности - См. также:
close
void close()
CLOSE отправляется слушателям линии.isOpen
boolean isOpen()
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, 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/sampled/Line.html