Mixer
Mixer
오디오 입력/출력 라인의 믹서를 나타내는 인터페이스예요. Line을 상속해요.
본문
javax.sound.sampled 패키지에 속하는 인터페이스로, Line을 상속해요. Mixer는 하드웨어 장치(예: 사운드 카드)이거나 소프트웨어 믹시일 수 있어요. 믹서는 오디오 신호를 처리하고, 여러 입력/출력 라인(포트, 데이터 라인, 클립 등)을 제공해요.
Mixer는 Line.Info를 통해 라인을 만들고, getLine, getSourceLines, getTargetLines 같은 메서드로 라인에 접근해요.
public interface Mixer extends Line
getMixerInfo
Mixer.Info getMixerInfo()
이 믹서를 설명하는 정보 객체를 얻어요.
- 반환값: 믹서 정보 객체
getSourceLineInfo
Line.Info[] getSourceLineInfo()
이 믹서가 지원하는 소스(출력) 라인에 대한 정보 배열을 얻어요. 소스 라인은 오디오 데이터를 내보내는 라인이에요.
- 반환값: 소스 라인 정보 배열
getTargetLineInfo
Line.Info[] getTargetLineInfo()
이 믹서가 지원하는 대상(입력) 라인에 대한 정보 배열을 얻어요. 대상 라인은 오디오 데이터를 받는 라인이에요.
- 반환값: 대상 라인 정보 배열
getLine
Line getLine(Line.Info info) throws LineUnavailableException
지정된 Line.Info에 해당하는 라인을 얻어요. 라인은 아직 열리지 않은 상태로 반환돼요.
- 파라미터
info: 원하는 라인의 정보 - 반환값: 요청된 라인
- 예외
LineUnavailableException: 라인을 만들 수 없는 경우
getMaxLines
int getMaxLines(Line.Info info)
지정된 정보를 가진 라인의 최대 수를 얻어요. 무한이면 AudioSystem.NOT_SPECIFIED를 반환해요.
- 파라미터
info: 질의할 라인 정보 - 반환값: 최대 라인 수
getSourceLines
Line[] getSourceLines()
이 믹서에 현재 열려 있는 모든 소스 라인을 얻어요.
- 반환값: 열려 있는 소스 라인 배열
getTargetLines
Line[] getTargetLines()
이 믹서에 현재 열려 있는 모든 대상 라인을 얻어요.
- 반환값: 열려 있는 대상 라인 배열
isSynchronizationSupported
boolean isSynchronizationSupported(Line[] lines, boolean maintainSync)
지정된 라인들의 동기화를 지원하는지 나타내요. 라인들이 동기화되면 함께 시작/중지돼요.
- 파라미터
lines: 동기화할 라인 배열 - 파라미터
maintainSync: 동기화 유지 여부 - 반환값: 지원하면
true, 그렇지 않으면false
synchronize
void synchronize(Line[] lines, boolean maintainSync)
지정된 라인들을 동기화해요. 동기화된 라인들은 함께 시작하고 중지돼요.
- 파라미터
lines: 동기화할 라인 배열 - 파라미터
maintainSync: 시작 후 동기화를 유지할지 여부
중첩 클래스 Info
Mixer.Info는 믹서에 대한 정보를 나타내는 중첩 클래스예요. Line.Info를 상속하고, 믹서의 이름, 벤더, 버전, 설명을 담아요. AudioSystem.getMixerInfo()가 반환하는 정보 객체들로 믹서를 얻을 수 있어요.