Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface TargetDataLine extends DataLine
DataLine
из которого могут быть считаны аудиоданные. Наиболее распространенным примером является строка данных, которая получает ее данные от аудио устройства получения. (Устройство реализуется как микшер, который пишет в целевую строку данных.) Отметьте, что соглашение о присвоении имен для этого интерфейса отражает отношение между строкой и ее микшером. С точки зрения приложения целевая строка данных может действовать как источник для аудиоданных.
Целевая строка данных может быть получена из микшера, вызывая
метод getLine
Mixer
с соответствующим
объект. DataLine.Info
TargetDataLine
интерфейс обеспечивает метод для того, чтобы он считал полученные данные из целевого буфера строки данных. Приложения, которые записывают аудио, должны считать данные из целевой строки данных достаточно быстро, чтобы препятствовать буферу переполняться, который мог вызвать разрывы в полученных данных, которые воспринимаются как щелчки. Приложения могут использовать
метод, определенный в available
DataLine
интерфейс, чтобы определить объем данных, в настоящий момент поставленный в очередь в буфере строки данных. Если буфер действительно переполняется, самые старые данные с очередями отбрасываются и заменяются новыми данными.
Mixer
, DataLine
, SourceDataLine
DataLine. Информация
Модификатор и Тип | Метод и Описание |
---|---|
void |
open(AudioFormat format)
Открывает строку с указанным форматом, заставляя строку получить любые необходимые системные ресурсы и стать операционным.
|
void |
open(AudioFormat format, int bufferSize)
Открывает строку с указанным форматом и требуемым размером буфера, заставляя строку получить любые необходимые системные ресурсы и стать операционным.
|
int |
read(byte[] b, int off, int len)
Аудиоданные чтений от входного буфера строки данных.
|
available, drain, flush, getBufferSize, getFormat, getFramePosition, getLevel, getLongFramePosition, getMicrosecondPosition, isActive, isRunning, start, stop
addLineListener, close, getControl, getControls, getLineInfo, isControlSupported, isOpen, open, removeLineListener
void open(AudioFormat format, int bufferSize) throws LineUnavailableException
Размер буфера определяется в байтах, но должен представить целое число демонстрационных фреймов. Вызов этого метода с требуемым размером буфера, который не удовлетворяет это требование, может привести к IllegalArgumentException. Фактический размер буфера для открытой строки может отличаться от требуемого размера буфера. Значение фактически набор может быть запрошено, впоследствии вызывая DataLine.getBufferSize()
Если эта работа успешно выполняется, строка отмечается как открытая, и
событие диспетчеризируется слушателям строки. OPEN
Вызов этого метода на строке, которая уже открыта, недопустим и может привести к IllegalStateException
.
Некоторые строки, когда-то закрытые, не могут быть вновь открыты. Попытки вновь открыть такую строку будут всегда приводить к a LineUnavailableException
.
format
- требуемый аудиоформатbufferSize
- требуемый размер буфера, в байтах.LineUnavailableException
- если строка не может быть открыта из-за ограничений ресурсаIllegalArgumentException
- если размер буфера не представляет целое число демонстрационных фреймов, или если format
не полностью определяется или не недопустимIllegalStateException
- если строка уже открытаSecurityException
- если строка не может быть открыта из-за ограничений безопасностиopen(AudioFormat)
, Line.open()
, Line.close()
, Line.isOpen()
, LineEvent
void open(AudioFormat format) throws LineUnavailableException
Реализация выбирает размер буфера, который измеряется в байтах, но который охватывает целое число демонстрационных фреймов. Размер буфера, который выбрала система, может быть запрошен, впоследствии вызывая DataLine.getBufferSize()
Если эта работа успешно выполняется, строка отмечается как открытая, и
событие диспетчеризируется слушателям строки. OPEN
Вызов этого метода на строке, которая уже открыта, недопустим и может привести к IllegalStateException
.
Некоторые строки, когда-то закрытые, не могут быть вновь открыты. Попытки вновь открыть такую строку будут всегда приводить к a LineUnavailableException
.
format
- требуемый аудиоформатLineUnavailableException
- если строка не может быть открыта из-за ограничений ресурсаIllegalArgumentException
- если format
не полностью определяется или не недопустимIllegalStateException
- если строка уже открытаSecurityException
- если строка не может быть открыта из-за ограничений безопасностиopen(AudioFormat, int)
, Line.open()
, Line.close()
, Line.isOpen()
, LineEvent
int read(byte[] b, int off, int len)
Число байтов, которые могут быть считаны без блокирования, может быть установлено, используя
метод available
DataLine
интерфейс. (В то время как гарантируется, что это число байтов может быть считано без блокирования, нет никакой гарантии, которая пытается читать, дополнительные данные блокируют.)
Число байтов, которые будут считаны, должно представить целое число демонстрационных фреймов, так, что:
[ bytes read ] % [frame size in bytes ] == 0
b
- байтовый массив, который будет содержать запрошенные входные данные, когда этот метод возвратитсяoff
- смещение с начала массива, в байтахlen
- требуемое число байтов, чтобы читатьIllegalArgumentException
- если требуемое число байтов не представляет целое число демонстрационных фреймов. или если len
отрицательно.ArrayIndexOutOfBoundsException
- если off
отрицательно, или off+len
больше чем длина массива b
.SourceDataLine.write(byte[], int, int)
, DataLine.available()
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92