Spec-Zone.ru › OpenJDK 27

Интерфейс Mixer

Все суперинтерфейсы:
AutoCloseable, Line
public interface Mixer extends Line
Микшер — это аудиоустройство с одной или несколькими линиями. Он не обязательно предназначен для микширования аудиосигналов. Микшер, который действительно микширует аудиосигналы, имеет несколько входных (исходных) линий и как минимум одну выходную (целевую) линию. Первые часто являются экземплярами классов, реализующих интерфейс SourceDataLine, а последние — TargetDataLine. Объекты Port также являются либо исходными, либо целевыми линиями. Микшер может принимать в качестве входных данных предварительно записанный звук, допускающий циклическое воспроизведение, если некоторые его исходные линии являются экземплярами объектов, реализующих интерфейс Clip.

С помощью методов интерфейса Line, который расширяет Mixer, микшер может предоставлять набор элементов управления, действующих для всего микшера. Например, микшер может иметь общий регулятор усиления. Эти общие элементы управления отличаются от элементов управления, относящихся к каждой отдельной линии микшера.

Некоторые микшеры, особенно микшеры со встроенными возможностями цифрового микширования, могут предоставлять дополнительные возможности, реализуя интерфейс DataLine.

Микшер может поддерживать синхронизацию своих линий. Когда одна линия в синхронизированной группе запускается или останавливается, остальные линии в группе автоматически запускаются или останавливаются одновременно с линией, к которой было применено действие.

Начиная с:
1.3

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

Модификатор и тип Интерфейс Описание
static class  Mixer.Info
Класс Mixer.Info представляет сведения об аудиомикшере, включая название продукта, версию и производителя, а также текстовое описание.

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

Модификатор и тип Метод Описание
Line getLine(Line.Info info)
Получает доступную для использования линию, соответствующую описанию в указанном объекте Line.Info.
int getMaxLines(Line.Info info)
Получает приблизительное максимальное количество линий запрошенного типа, которые могут быть одновременно открыты в микшере.
Mixer.Info getMixerInfo()
Получает сведения об этом микшере, включая название продукта, версию, производителя и т. д.
Line.Info[] getSourceLineInfo()
Получает сведения о наборе исходных линий, поддерживаемых этим микшером.
Line.Info[] getSourceLineInfo(Line.Info info)
Получает сведения об исходных линиях определенного типа, поддерживаемых микшером.
Line[] getSourceLines()
Получает набор всех исходных линий, в настоящее время открытых для этого микшера.
Line.Info[] getTargetLineInfo()
Получает сведения о наборе целевых линий, поддерживаемых этим микшером.
Line.Info[] getTargetLineInfo(Line.Info info)
Получает сведения о целевых линиях определенного типа, поддерживаемых микшером.
Line[] getTargetLines()
Получает набор всех целевых линий, в настоящее время открытых для этого микшера.
boolean isLineSupported(Line.Info info)
Показывает, поддерживает ли микшер линию (или линии), соответствующую указанному объекту Line.Info.
boolean isSynchronizationSupported(Line[] lines, boolean maintainSync)
Сообщает, поддерживает ли этот микшер синхронизацию указанного набора линий.
void synchronize(Line[] lines, boolean maintainSync)
Синхронизирует две или более линий.
void unsynchronize(Line[] lines)
Отменяет синхронизацию указанных линий.

Методы, объявленные в интерфейсе Line

addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener
Модификатор и тип Метод Описание
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)
Удаляет указанного прослушивателя из списка прослушивателей этой линии.

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

getMixerInfo

Mixer.Info getMixerInfo()
Получает сведения об этом микшере, включая название продукта, версию, производителя и т. д.
Возвращает:
объект сведений о микшере, описывающий этот микшер
См. также:
  • Mixer.Info

getSourceLineInfo

Line.Info[] getSourceLineInfo()
Получает сведения о наборе исходных линий, поддерживаемых этим микшером. Некоторые исходные линии могут быть доступны только тогда, когда этот микшер открыт.
Возвращает:
массив объектов Line.Info, представляющих исходные линии этого микшера. Если исходные линии не поддерживаются, возвращается массив длины 0.

getTargetLineInfo

Line.Info[] getTargetLineInfo()
Получает сведения о наборе целевых линий, поддерживаемых этим микшером. Некоторые целевые линии могут быть доступны только тогда, когда этот микшер открыт.
Возвращает:
массив объектов Line.Info, представляющих целевые линии этого микшера. Если целевые линии не поддерживаются, возвращается массив длины 0.

getSourceLineInfo

Line.Info[] getSourceLineInfo(Line.Info info)
Получает сведения об исходных линиях определенного типа, поддерживаемых микшером. Некоторые исходные линии могут быть доступны только тогда, когда этот микшер открыт.
Параметры:
info — объект Line.Info, описывающий линии, сведения о которых запрашиваются
Возвращает:
массив объектов Line.Info, описывающих исходные линии запрошенного типа. Если соответствующие исходные линии не поддерживаются, возвращается массив длины 0.

getTargetLineInfo

Line.Info[] getTargetLineInfo(Line.Info info)
Получает сведения о целевых линиях определенного типа, поддерживаемых микшером. Некоторые целевые линии могут быть доступны только тогда, когда этот микшер открыт.
Параметры:
info — объект Line.Info, описывающий линии, сведения о которых запрашиваются
Возвращает:
массив объектов Line.Info, описывающих целевые линии запрошенного типа. Если соответствующие целевые линии не поддерживаются, возвращается массив длины 0.

isLineSupported

boolean isLineSupported(Line.Info info)
Показывает, поддерживает ли микшер линию (или линии), соответствующую указанному объекту Line.Info. Некоторые линии могут поддерживаться только тогда, когда этот микшер открыт.
Параметры:
info — описание линии, поддержку которой требуется проверить
Возвращает:
true, если поддерживается хотя бы одна соответствующая линия, в противном случае — false

getLine

Line getLine(Line.Info info) throws LineUnavailableException
Получает доступную для использования линию, соответствующую описанию в указанном объекте Line.Info.

Если запрошен DataLine и info является экземпляром DataLine.Info, задающим хотя бы один полностью определенный аудиоформат, последний из них будет использован в качестве формата по умолчанию для возвращаемого DataLine.

Параметры:
info — описание требуемой линии
Возвращает:
доступную для использования линию, соответствующую описанию в указанном объекте Line.Info
Выбрасывает:
LineUnavailableException — если соответствующая линия недоступна из-за ограничений ресурсов
IllegalArgumentException — если этот микшер не поддерживает ни одной линии, соответствующей описанию

getMaxLines

int getMaxLines(Line.Info info)
Получает приблизительное максимальное количество линий запрошенного типа, которые могут быть одновременно открыты в микшере.

Некоторые типы микшеров не имеют строгого ограничения и могут разрешать открытие большего количества линий. Поскольку некоторые линии являются общим ресурсом, микшер может не суметь открыть максимальное количество линий, если другой процесс уже открыл линии этого микшера.

Запрошенный тип — это любая линия, соответствующая описанию в предоставленном объекте Line.Info. Например, если объект сведений представляет порт динамика, а микшер поддерживает ровно один порт динамика, этот метод должен возвращать 1. Если объект сведений представляет линию исходных данных, а микшер поддерживает одновременное использование 32 таких линий, возвращаемое значение должно быть равно 32. Если ограничений нет, эта функция возвращает AudioSystem.NOT_SPECIFIED.

Параметры:
info — объект Line.Info, описывающий линию, для которой запрашивается количество поддерживаемых экземпляров
Возвращает:
максимальное количество поддерживаемых соответствующих линий или AudioSystem.NOT_SPECIFIED

getSourceLines

Line[] getSourceLines()
Получает набор всех исходных линий, в настоящее время открытых для этого микшера.
Возвращает:
исходные линии, в настоящее время открытые для микшера. Если для этого микшера не открыто ни одной исходной линии, возвращается массив длины 0.

getTargetLines

Line[] getTargetLines()
Получает набор всех целевых линий, в настоящее время открытых для этого микшера.
Возвращает:
целевые линии, в настоящее время открытые для микшера. Если для этого микшера не открыто ни одной целевой линии, возвращается массив длины 0.

synchronize

void synchronize(Line[] lines, boolean maintainSync)
Синхронизирует две или более линий. Любая последующая команда, запускающая или останавливающая воспроизведение или захват звука для одной из этих линий, окажет такое же воздействие на остальные линии группы, поэтому они будут одновременно начинать или прекращать воспроизведение либо захват данных.
Параметры:
lines — линии, которые необходимо синхронизировать
maintainSync — true, если синхронизация должна точно поддерживаться (то есть быть точной до сэмпла) на протяжении всей работы линий, или false, если точная синхронизация требуется только при запуске и остановке
Выбрасывает:
IllegalArgumentException — если синхронизировать линии невозможно. Это может произойти, если линии имеют разные типы или форматы, синхронизацию которых этот микшер не поддерживает, либо если не все указанные линии принадлежат этому микшеру.

unsynchronize

void unsynchronize(Line[] lines)
Отменяет синхронизацию указанных линий. Массив должен совпадать с массивом, для которого ранее была установлена синхронизация; в противном случае может быть выброшено исключение. Однако можно указать null — в этом случае синхронизация будет отменена для всех текущих синхронизированных линий, принадлежащих этому микшеру.
Параметры:
lines — синхронизированные линии, для которых следует отменить синхронизацию, или null — для всех синхронизированных линий этого микшера
Выбрасывает:
IllegalArgumentException — если отменить синхронизацию линий невозможно. Это может произойти, если указанный аргумент не совпадает в точности с набором линий, для которого ранее была установлена синхронизация.

isSynchronizationSupported

boolean isSynchronizationSupported(Line[] lines, boolean maintainSync)
Сообщает, поддерживает ли этот микшер синхронизацию указанного набора линий.
Параметры:
lines — набор линий, для которого проверяется поддержка синхронизации
maintainSync — true, если синхронизация должна точно поддерживаться (то есть быть точной до сэмпла) на протяжении всей работы линий, или false, если точная синхронизация требуется только при запуске и остановке
Возвращает:
true, если линии можно синхронизировать, в противном случае — false

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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