Line
Line
오디오 입력 또는 출력을 나타내는 단일 채널을 나타내는 인터페이스예요. 라인은 실제 하드웨어 장치이거나 내부 소프트웨어 파이프일 수 있어요.
본문
javax.sound.sampled 패키지에 속하는 인터페이스로, 오디오 데이터가 흐르는 단일 채널을 나타내요. Mixer는 여러 라인(입력/출력)을 제공하고, Clip, SourceDataLine, TargetDataLine, Port 등이 Line을 상속해요.
라인은 열리고(open), 닫힐 수 있고(close), 상태를 가져요. 라인의 상태는 LineListener와 LineEvent를 통해 추적할 수 있어요.
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를 상속해요.