Spec-Zone.ru › OpenJDK 17

Интерфейс 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, 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

Spec-Zone.ru

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