AudioInputStream

AudioInputStream

오디오 데이터를 읽는 입력 스트림을 나타내는 클래스예요. InputStream을 상속하고 오디오 형식 정보를 담아요.

출처: Java API Reference

본문

javax.sound.sampled 패키지에 속하는 클래스로, java.io.InputStream을 상속해요. AudioInputStream은 특정 오디오 형식으로 인코딩된 오디오 데이터의 스트림을 나타내요. 읽기 인터페이스(read)를 통해 오디오 데이터 바이트를 읽을 수 있어요.

public class AudioInputStream extends InputStream

생성자

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

지정된 입력 스트림, 오디오 형식, 길이로 새 오디오 입력 스트림을 생성해요.

  • 파라미터 stream: 오디오 데이터를 담은 입력 스트림
  • 파라미터 format: 오디오 데이터의 형식
  • 파라미터 length: 오디오 데이터의 길이(샘플 프레임 단위). 알 수 없으면 AudioSystem.NOT_SPECIFIED
public AudioInputStream(TargetDataLine line)

지정된 대상 데이터 라인(예: 마이크)에서 오디오 데이터를 읽는 새 오디오 입력 스트림을 생성해요. 라인의 형식이 사용돼요.

  • 파라미터 line: 오디오 데이터를 제공하는 대상 데이터 라인

getFormat

public AudioFormat getFormat()

이 스트림의 오디오 형식을 얻어요.

  • 반환값: 오디오 형식

getFrameLength

public long getFrameLength()

스트림의 길이를 샘플 프레임 단위로 얻어요.

  • 반환값: 프레임 길이. 알 수 없으면 AudioSystem.NOT_SPECIFIED

getFramePosition

public long getFramePosition()

스트림의 현재 위치를 샘플 프레임 단위로 얻어요.

  • 반환값: 현재 프레임 위치

read

public int read() throws IOException

스트림에서 다음 바이트를 읽어요. 바이트 값을 반환하고, 끝에 도달하면 -1을 반환해요.

  • 반환값: 다음 데이터 바이트. 스트림 끝이면 -1
  • 예외 IOException: I/O 오류가 발생한 경우

read(byte[], int, int)는 오디오 데이터 바이트를 배열로 읽고, skip(long)은 바이트를 건너뛰어요.

available

public int available() throws IOException

차단 없이 읽을 수 있는 바이트 수를 얻어요.

  • 반환값: 읽을 수 있는 바이트 수
  • 예외 IOException: I/O 오류가 발생한 경우

close

public void close() throws IOException

스트림을 닫고 관련 리소스를 해제해요.

  • 예외 IOException: I/O 오류가 발생한 경우

더 알아보기