SourceDataLine
SourceDataLine
오디오 데이터를 스피커 같은 출력 장치로 보내는 데이터 라인을 나타내는 인터페이스예요. DataLine을 상속해요.
본문
javax.sound.sampled 패키지에 속하는 인터페이스로, DataLine을 상속해요. SourceDataLine은 응용 프로그램이 오디오 데이터를 써서(재생) 라인에 보내는 라인이에요. write 메서드로 오디오 데이터를 라인에 보내면 재생돼요.
public interface SourceDataLine extends DataLine
open
void open(AudioFormat format) throws LineUnavailableException
지정된 형식으로 라인을 열어요. 라인이 형식을 지원하는지 확인하고, 하드웨어 리소스를 확보해요.
- 파라미터
format: 라인에 대한 오디오 형식 - 예외
LineUnavailableException: 라인을 열 수 없는 경우
void open(AudioFormat format, int bufferSize) throws LineUnavailableException
지정된 형식과 버퍼 크기로 라인을 열어요. 실제 버퍼 크기는 시스템이 조정할 수 있어요.
- 파라미터
format: 오디오 형식 - 파라미터
bufferSize: 요청된 버퍼 크기(바이트) - 예외
LineUnavailableException: 라인을 열 수 없는 경우
write
int write(byte[] b, int off, int len)
오디오 데이터를 라인의 버퍼에 써서 재생해요. 데이터는 라인의 오디오 형식으로 인코딩돼야 해요. 쓴 바이트 수를 반환해요.
- 파라미터
b: 오디오 데이터 배열 - 파라미터
off: 데이터의 시작 오프셋 - 파라미터
len: 쓸 바이트 수 - 반환값: 실제로 쓴 바이트 수
write로 쓰는 데이터는 라인이 열린 형식과 일치해야 해요. 데이터를 라인으로 보내면 스피커 등으로 재생돼요.
drain
void drain()
라인의 버퍼가 모두 비워질 때까지 차단해요. 쓴 모든 데이터가 재생될 때까지 기다려요.
flush
void flush()
라인의 버퍼에서 데이터를 버려요. 아직 재생되지 않은 데이터를 제거해요.