Line

Line

오디오 입력 또는 출력을 나타내는 단일 채널을 나타내는 인터페이스예요. 라인은 실제 하드웨어 장치이거나 내부 소프트웨어 파이프일 수 있어요.

출처: Java API Reference

본문

javax.sound.sampled 패키지에 속하는 인터페이스로, 오디오 데이터가 흐르는 단일 채널을 나타내요. Mixer는 여러 라인(입력/출력)을 제공하고, Clip, SourceDataLine, TargetDataLine, Port 등이 Line을 상속해요.

라인은 열리고(open), 닫힐 수 있고(close), 상태를 가져요. 라인의 상태는 LineListenerLineEvent를 통해 추적할 수 있어요.

public interface Line extends AutoCloseable

getLineInfo

Line.Info getLineInfo()

라인이 무엇을 할 수 있는지 설명하는 정보 객체를 얻어요.

  • 반환값: 라인의 Info 객체

open

void open() throws LineUnavailableException

라인을 열어 하드웨어 리소스를 확보하고 라인을 사용 가능하게 해요. 이미 열려 있으면 다시 열지 않아요.

  • 예외 LineUnavailableException: 리소스 부족 등으로 라인을 열 수 없는 경우

close

void close()

라인을 닫아 하드웨어 리소스를 해제해요. 닫힌 라인에는 더 이상 데이터가 흐르지 않아요.

isOpen

boolean isOpen()

라인이 열려 있는지 나타내요.

  • 반환값: 열려 있으면 true, 그렇지 않으면 false

addLineListener / removeLineListener

void addLineListener(LineListener listener)
void removeLineListener(LineListener listener)

라인의 상태 변화(OPEN, CLOSE, START, STOP)를 통지받는 리스너를 등록/제거해요.

  • 파라미터 listener: 등록/제거할 리스너

getControls

Control[] getControls()

라인이 보유한 모든 컨트롤을 얻어요. 예를 들어 볼륨, 뮤트, 리버브 컨트롤이 있을 수 있어요.

  • 반환값: 컨트롤 배열

getControl

Control getControl(Control.Type control)

지정된 유형의 컨트롤을 얻어요.

  • 파라미터 control: 원하는 컨트롤의 유형
  • 반환값: 지정된 유형의 컨트롤
  • 예외 IllegalArgumentException: 라인이 지정된 유형의 컨트롤을 가지지 않는 경우

isControlSupported

boolean isControlSupported(Control.Type control)

라인이 지정된 유형의 컨트롤을 지원하는지 나타내요.

  • 파라미터 control: 컨트롤 유형
  • 반환값: 지원하면 true, 그렇지 않으면 false

중첩 클래스 Info

Line.Info는 라인에 대한 정보를 나타내는 중첩 클래스예요. 라인의 클래스와 지원되는 형식 등을 설명해요. DataLine.Info, Port.Info 등이 Line.Info를 상속해요.

더 알아보기