Spec-Zone.ru › OpenJDK 21

Интерфейс 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
См. также:
  • LineEvent

Краткое описание вложенных классов

Модификатор и тип Интерфейс Описание
static class  Line.Info
Объект Line.Info содержит информацию о строке.

Краткое описание методов

Модификатор и тип Метод Описание
void addLineListener(LineListener listener)
Добавляет слушателя к этой строке.
void close()
Закрывает строку, указывая, что любые системные ресурсы, используемые строкой, могут быть освобождены.
Control getControl(Control.Type control)
Получает элемент управления указанного типа, если таковой имеется.
Control[] getControls()
Получает набор элементов управления, связанных с этой строкой.
Line.Info getLineInfo()
Получает объект Line.Info, описывающий эту строку.
boolean isControlSupported(Control.Type control)
Указывает, поддерживает ли строка элемент управления указанного типа.
boolean isOpen()
Указывает, открыта ли строка, что означает, что она зарезервировала системные ресурсы и работоспособна, хотя в данный момент она может не воспроизводить или не записывать звук.
void open()
Открывает строку, указывая, что она должна получить все необходимые системные ресурсы и стать работоспособной.
void removeLineListener(LineListener listener)
Удаляет указанного слушателя из списка слушателей этой строки.

Подробное описание методов

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()
  • isOpen()
  • LineEvent
  • DataLine
  • Clip.open(AudioFormat, byte[], int, int)
  • Clip.open(AudioInputStream)

close

void close()
Закрывает линию, указывая, что все системные ресурсы, используемые линией, могут быть освобождены. При успешном выполнении операции линия помечается как закрытая, и в слушатели линии отправляется событие CLOSE.
Определено в:
close в интерфейсе AutoCloseable
Исключение:
SecurityException - если линия не может быть закрыта из-за ограничений безопасности
См. также:
  • open()
  • isOpen()
  • LineEvent

isOpen

boolean isOpen()
Указывает, открыта ли линия, что означает, что она зарезервировала системные ресурсы и работоспособна, хотя в данный момент может не воспроизводить или не записывать звук.
Возвращает:
true если линия открыта, иначе false
См. также:
  • open()
  • close()

getControls

Control[] getControls()
Получает набор элементов управления, связанных с этой линией. Некоторые элементы управления могут быть доступны только когда линия открыта. Если элементов управления нет, этот метод возвращает массив длиной 0.
Возвращает:
массив элементов управления
См. также:
  • getControl(javax.sound.sampled.Control.Type)

isControlSupported

boolean isControlSupported(Control.Type control)
Указывает, поддерживает ли линия элемент управления указанного типа. Некоторые элементы управления могут быть доступны только когда линия открыта.
Параметры:
control - тип элемента управления, поддержка которого запрашивается
Возвращает:
true если хотя бы один элемент управления указанного типа поддерживается, иначе false

getControl

Control getControl(Control.Type control)
Получает элемент управления указанного типа, если таковой имеется. Некоторые элементы управления могут быть доступны только когда линия открыта.
Параметры:
control - тип запрашиваемого элемента управления
Возвращает:
элемент управления указанного типа
Исключение:
IllegalArgumentException - если элемент управления указанного типа не поддерживается
См. также:
  • getControls()
  • isControlSupported(Control.Type control)

addLineListener

void addLineListener(LineListener listener)
Добавляет слушателя к этой линии. Всякий раз, когда статус линии меняется, метод update() слушателя вызывается с объектом LineEvent описывающим изменение.
Параметры:
listener - объект, который нужно добавить в качестве слушателя к этой линии
См. также:
  • removeLineListener(javax.sound.sampled.LineListener)
  • LineListener.update(javax.sound.sampled.LineEvent)
  • LineEvent

removeLineListener

void removeLineListener(LineListener listener)
Удаляет указанного слушателя из списка слушателей этой линии.
Параметры:
listener - слушатель для удаления
См. также:
  • addLineListener(javax.sound.sampled.LineListener)

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API