Класс AudioInputStream

Все реализованные интерфейсы:
Closeable, AutoCloseable
public class AudioInputStream
extends InputStream

Поток аудио ввода — это поток ввода с указанным аудиоформатом и длиной. Длина выражается в кадрах образцов, а не в байтах. Предоставлены несколько методов для чтения определённого числа байтов из потока или неопределённого количества байтов. Поток аудио ввода отслеживает последний прочитанный байт. Вы можете пропустить произвольное количество байтов, чтобы перейти к более поздней позиции для чтения. Поток аудио ввода может поддерживать метки. Когда вы устанавливаете метку, текущая позиция запоминается, чтобы вы могли вернуться к ней позже.

Класс AudioSystem включает множество методов, которые манипулируют объектами AudioInputStream. Например, методы позволяют:

  • получить поток аудио ввода из внешнего аудиофайла, потока или URL
  • записать внешний файл из потока аудио ввода
  • преобразовать поток аудио ввода в другой аудиоформат
С тех пор:
1.3
См. также:
AudioSystem, Clip.open(AudioInputStream)

Поля

Модификатор и тип Поле Описание
protected AudioFormat format

Формат аудиоданных, содержащихся в потоке.

protected long frameLength

Длина этого потока в кадрах образцов.

protected long framePos

Текущая позиция в этом потоке в кадрах образцов (нумерация с нуля).

protected int frameSize

Размер каждого кадра в байтах.

Конструкторы

Конструктор Описание
AudioInputStream​(InputStream stream, AudioFormat format, long length)

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

AudioInputStream​(TargetDataLine line)

Создаёт поток аудио ввода, который читает данные из целевого канала данных, указанного в параметре.

Методы

Модификатор и тип Метод Описание
int available()

Возвращает максимальное количество байтов, которые могут быть прочитаны (или пропущены) из этого потока аудио ввода без блокировки.

void close()

Закрывает этот поток аудио ввода и высвобождает любые системные ресурсы, связанные с потоком.

AudioFormat getFormat()

Получает аудиоформат звуковых данных в этом потоке аудио ввода.

long getFrameLength()

Получает длину потока, выраженную в кадрах образцов, а не в байтах.

void mark​(int readlimit)

Помечает текущую позицию в этом потоке аудио ввода.

boolean markSupported()

Проверяет, поддерживает ли этот поток аудио ввода методы mark и reset.

int read()

Читает следующий байт данных из потока аудио ввода.

int read​(byte[] b)

Читает некоторое количество байтов из потока аудио ввода и сохраняет их в массив байтов b.

int read​(byte[] b, int off, int len)

Читает до указанного максимального количества байтов данных из потока аудио, помещая их в заданный массив байтов.

void reset()

Перемещает этот поток аудио ввода в позицию, которая была у него в момент последнего вызова метода mark.

long skip​(long n)

Пропускает и отбрасывает указанное количество байтов из этого потока аудио ввода.

Методы, объявленные в классе java.io.InputStream

nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

формат

protected AudioFormat format

Формат аудиоданных, содержащихся в потоке.

длинаКадра

protected long frameLength

Длина этого потока в кадрах образцов.

размерКадра

protected int frameSize

Размер каждого кадра в байтах.

текущееПоложениеКадра

protected long framePos

Текущее положение в этом потоке в кадрах образцов (нумерация с нуля).

Конструкторы

AudioInputStream

public AudioInputStream(InputStream stream,
                        AudioFormat format,
                        long length)

Создаёт поток входных аудиоданных с заданным форматом и длиной в кадрах образцов, используя аудиоданные из указанного входного потока.

Параметры:
stream - поток, на основе которого создаётся этот объект AudioInputStream
format - формат аудиоданных этого потока
length - длина данных в этом потоке в кадрах образцов

AudioInputStream

public AudioInputStream(TargetDataLine line)

Создаёт поток входных аудиоданных, читающий данные из указанной линии целевых данных. Формат потока совпадает с форматом целевой линии данных, а длина — AudioSystem#NOT_SPECIFIED.

Параметры:
line - линия целевых данных, из которой этот поток получает свои данные
См. также:
AudioSystem.NOT_SPECIFIED

Методы

getFormat

public AudioFormat getFormat()

Получает формат аудиоданных звуковых данных в этом потоке входных аудиоданных.

Возвращает:
объект аудиоформата, описывающий формат этого потока

getFrameLength

public long getFrameLength()

Получает длину потока, выраженную в кадрах образцов, а не в байтах.

Возвращает:
длину в кадрах образцов

read

public int read()
         throws IOException

Читает следующий байт данных из потока входных аудиоданных. Размер кадра потока входных аудиоданных должен быть равен одному байту, иначе будет выброшено IOException.

Унаследовано от:
read в классе InputStream
Возвращает:
следующий байт данных или -1, если достигнут конец потока
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
См. также:
read(byte[], int, int), read(byte[]), available()

read

public int read(byte[] b)
         throws IOException

Читает некоторое количество байтов из потока входных аудиоданных и сохраняет их в массив буфера b. Количество фактически прочитанных байтов возвращается как целое число. Этот метод блокируется до тех пор, пока данные ввода не станут доступны, не будет обнаружен конец потока или не будет выброшено исключение.

Этот метод всегда читает целое число кадров. Если длина массива не является целым числом кадров, будет прочитано максимальное количество b.length - (b.length % frameSize) байтов.

Переопределяет:
read в классе InputStream
Параметры:
b - буфер, в который читаются данные
Возвращает:
общее количество байтов, прочитанных в буфер, или -1, если больше нет данных, потому что достигнут конец потока
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
См. также:
read(byte[], int, int), read(), available()

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException

Читает до указанного максимального числа байтов данных из аудиопотока, помещая их в заданный массив байтов.

Этот метод всегда читает целое число кадров. Если len не задаёт целое число кадров, будет прочитано максимальное количество len - (len % frameSize) байтов.

Переопределяет:
read в классе InputStream
Параметры:
b - буфер, в который читаются данные
off - смещение от начала массива b, в котором данные будут записаны
len - максимальное количество байтов для чтения
Возвращает:
общее количество байтов, прочитанных в буфер, или -1, если больше нет данных, потому что достигнут конец потока
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
См. также:
read(byte[]), read(), skip(long), available()

skip

public long skip(long n)
          throws IOException

Пропускает и отбрасывает указанное количество байтов из этого потока входных аудиоданных.

Этот метод всегда пропускает целое число кадров. Если n не задаёт целое число кадров, будет пропущено максимальное количество n - (n % frameSize) байтов.

Переопределяет:
skip в классе InputStream
Параметры:
n - запрашиваемое количество байтов для пропуска
Возвращает:
фактическое количество пропущенных байтов
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
См. также:
read(), available()

available

public int available()
              throws IOException

Возвращает максимальное количество байтов, которые можно прочитать (или пропустить) из этого потока входных аудиоданных без блокировки. Это ограничение относится только к следующему вызову метода read или skip для этого потока входных аудиоданных; это ограничение может изменяться каждый раз при вызове этих методов. В зависимости от основного потока, может быть выброшено IOException если этот поток закрыт.

Переопределяет:
available в классе InputStream
Возвращает:
количество байтов, которые можно прочитать из этого потока входных аудиоданных без блокировки
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
См. также:
read(byte[], int, int), read(byte[]), read(), skip(long)

close

public void close()
           throws IOException

Закрывает этот поток входных аудиоданных и освобождает все системные ресурсы, связанные с потоком.

Унаследовано от:
close в интерфейсе AutoCloseable
Унаследовано от:
close в интерфейсе Closeable
Переопределяет:
close в классе InputStream
Выбрасывает:
IOException - если произошла ошибка ввода-вывода

mark

public void mark(int readlimit)

Помечает текущее положение в этом потоке входных аудиоданных.

Переопределяет:
mark в классе InputStream
Параметры:
readlimit - максимальное количество байтов, которое можно прочитать, прежде чем метка станет недействительной
См. также:
reset(), markSupported()

reset

public void reset()
           throws IOException

Перемещает этот поток входных аудиоданных к положению, которое он имел в момент последнего вызова метода mark.

Переопределяет:
reset в классе InputStream
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
См. также:
mark(int), markSupported()

markSupported

public boolean markSupported()

Проверяет, поддерживает ли этот поток входных аудиоданных методы mark и reset.

Переопределяет:
markSupported в классе InputStream
Возвращает:
true если этот поток поддерживает методы mark и reset; false в противном случае
См. также:
mark(int), reset()

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/sound/sampled/AudioInputStream.html

Spec-Zone .ru
спецификации, руководства, описания, API