Spec-Zone.ru › OpenJDK 8

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

Spec-Zone.ru

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