Spec-Zone.ru › OpenJDK 24

Интерфейс 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(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, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/sound/sampled/Line.html

Spec-Zone.ru

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