DataLine
DataLine
오디오 데이터를 전송하는 라인을 나타내는 인터페이스예요. Line을 상속하고, 재생이나 녹음에 사용되는 라인들이 상속해요.
본문
javax.sound.sampled 패키지에 속하는 인터페이스로, Line을 상속하고 AutoCloseable을 포함해요. DataLine은 오디오 데이터를 전송하는 기능을 추가하며, Clip, SourceDataLine, TargetDataLine 등이 이 인터페이스를 상속해요.
라인이 DataLine인지 여부는 DataLine.Info 객체가 라인이 지원하는 오디오 형식과 버퍼 크기를 포함함으로써 나타나요.
public interface DataLine extends Line
getFormat
AudioFormat getFormat()
이 라인의 오디오 형식을 얻어요.
- 반환값: 오디오 형식(
AudioFormat)
getBufferSize
int getBufferSize()
이 라인의 버퍼 크기를 얻어요. 오디오 데이터가 저장될 수 있는 바이트 수를 나타내요. 버퍼 크기는 형식과 라인의 특성에 따라 달라져요.
- 반환값: 버퍼 크기(바이트)
getFramePosition
int getFramePosition()
라인의 현재 위치를 샘플 프레임 단위로 얻어요. 재생이나 녹음 중인 위치를 나타내요.
- 반환값: 현재 프레임 위치
getMicrosecondPosition
long getMicrosecondPosition()
라인의 현재 위치를 마이크로초 단위로 얻어요.
- 반환값: 현재 위치(마이크로초)
isActive
boolean isActive()
라인이 활성 상태인지 나타내요. 재생이나 녹음이 진행 중이면 true를 반환해요.
- 반환값: 활성 상태면
true, 그렇지 않으면false
isRunning
boolean isRunning()
라인이 실행 중인지 나타내요. 오디오 데이터가 흐르고 있으면 true를 반환해요.
- 반환값: 실행 중이면
true, 그렇지 않으면false
start
void start()
라인에서 데이터 흐름을 시작해요. SourceDataLine의 재생을 시작하거나 TargetDataLine의 녹음을 시작해요.
stop
void stop()
라인에서 데이터 흐름을 중지해요. START 이벤트와 함께 재생/녹음을 멈춰요.
중첩 클래스 Info
DataLine.Info는 데이터 라인에 대한 정보를 나타내는 중첩 클래스예요. Line.Info를 상속하고, 라인이 지원하는 오디오 형식과 버퍼 크기 범위를 설명해요. 이 정보는 데이터 라인이 특정 형식과 버퍼를 지원하는지 확인하는 데 사용돼요.