DataLine

DataLine

오디오 데이터를 전송하는 라인을 나타내는 인터페이스예요. Line을 상속하고, 재생이나 녹음에 사용되는 라인들이 상속해요.

출처: Java API Reference

본문

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를 상속하고, 라인이 지원하는 오디오 형식과 버퍼 크기 범위를 설명해요. 이 정보는 데이터 라인이 특정 형식과 버퍼를 지원하는지 확인하는 데 사용돼요.

더 알아보기