Класс 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.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