Spec-Zone.ru › OpenJDK 25

Интерфейс 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 — если линию невозможно открыть из-за ограничений ресурсов
См. также:
  • close()
  • isOpen()
  • LineEvent
  • DataLine
  • Clip.open(AudioFormat, byte[], int, int)
  • Clip.open(AudioInputStream)

close

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

isOpen

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

getControls

Control[] getControls()
Получает набор элементов управления, связанных с этой линией. Некоторые элементы управления могут быть доступны только при открытой линии. Если элементов управления нет, этот метод возвращает массив длины 0.
Возвращает:
массив элементов управления
См. также:
  • getControl(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(LineListener)
  • LineListener.update(LineEvent)
  • LineEvent

removeLineListener

void removeLineListener(LineListener listener)
Удаляет указанный прослушиватель из списка прослушивателей этой линии.
Параметры:
listener — прослушиватель, подлежащий удалению
См. также:
  • addLineListener(LineListener)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

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