Класс AudioInputStream
- java.lang.Object
-
- java.io.InputStream
-
- javax.sound.sampled.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() Проверяет, поддерживает ли этот поток ввода аудио методы |
int |
read() Читает следующий байт данных из потока ввода аудио. |
int |
read(byte[] b) Читает определённое количество байтов из потока ввода аудио и сохраняет их в массив байтов |
int |
read(byte[] b,
int off,
int len) Читает не более заданного максимального количества байтов данных из потока аудио, помещая их в заданный массив байтов. |
void |
reset() Возвращает этот поток ввода аудио в позицию, которая была в момент последнего вызова метода |
long |
skip(long n) Пропускает и отбрасывает указанное количество байтов из этого потока ввода аудио. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
format
protected AudioFormat format
Формат аудиоданных, содержащихся в потоке.
frameLength
protected long frameLength
Длина этого потока в кадрах выборки.
frameSize
protected int frameSize
Размер каждого кадра в байтах.
framePos
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[]),
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 Пропускает и отбрасывает указанное количество байтов из этого потока аудио ввода.
- Переопределяет:
-
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в интерфейсеCloseable - Унаследован от:
-
closeв интерфейсеAutoCloseable - Переопределяет:
-
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.