이것은 매우 제한된 형식을 지원할 수있는 간소화 된 코드입니다.
코드 사본은 다음과 같습니다.
패키지 com.hongyuan.test;
import java.io.file;
import java.io.ioexception;
javax.sound.sampled.audioformat import;
javax.sound.sampled.audioinputstream import;
javax.sound.sampled.audiosystem import;
javax.sound.sampled.dataline import;
import javax.sound.sampled.lineUnaVailableException;
javax.sound.sampled.sourcedataline;
Javax.sound.sampled.unsupportedaudiofileException import;
공공 계급 musictest {
공개 정적 최종 문자열 music_file = "우리가 만날 때 미소. wav";
public static void main (String [] args)은 LineUnaAvailableException을 던집니다.
UnsupportedaudiofileException, ioException {
// 오디오 입력 스트림을 가져옵니다
AudioInputStream AudioInputStream = 오디오 시스템
.getAudioInputStream (새 파일 (music_file));
// 오디오 인코딩 객체를 가져옵니다
audioformat audioformat = audioinputstream.getformat ();
// 데이터 입력을 설정합니다
Dataline.info Datalineinfo = New Dataline.info (Sourcedataline.class,
Audioformat, Audiosystem.not_specified);
Sourcedataline sourcedataline = (Sourcedataline) 오디오 시스템
.getline (DatalineInfo);
outcedataline.open (audioformat);
Sourcedataline.start ();
/*
* 입력 스트림에서 데이터를 읽고 믹서로 전송합니다.
*/
int count;
바이트 tempbuffer [] = 새로운 바이트 [1024];
while ((count = audioInputStream.read (tempbuffer, 0, tempbuffer.length))! = -1) {
if (count> 0) {
sourcedataline.write (Tempbuffer, 0, count);
}
}
// 데이터 버퍼를 지우고 입력을 닫습니다
Sourcedataline.drain ();
Sourcedataline.close ();
}
}