Интерфейс 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. - Определено в:
-
closeв интерфейсеAutoCloseable - Исключение:
-
SecurityException- если линия не может быть закрыта из-за ограничений безопасности - См. также:
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, 2023, 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/21/docs/api/java.desktop/javax/sound/sampled/Line.html