-
자바 에플리케이션에서 사운드 이용하기개발 2007. 9. 28. 10:12
애프릿에서 사운드를 사용하는 방법은 애플리케이션보다 간단하고 사용하기도 쉬우며 자료도 많이 있는 것 같습니다.
애플리케이션에서 사운드를 찾기 위해 여러사이트를 찾아봤지만 역시 가장 좋은 사이트는 JAVA API이군요.
모르는 영어 재해석해가며 방법을 찾았는데 다시 적으려니 원문해석이 어려워(ㅡㅡ;) 다시 글을 올리지 못함을 양해바랍니다.
원문 및 자세한 내용은 http://java.sun.com/docs/books/tutorial/sound/index.html 를 참고하시기 바랍니다.
import javax.sound.sampled;
public class SoundTest
{
public void play()
{
AudioInputStream au = null;
AudioFormat format = null;
File file = new File("C:\\sample.wav");try {
au = AudioSystem.getAudioInputStream(file);
format = au.getFormat();
} catch (UnsupportedAudioFileException ex) {
ex.printStackTrace();
return;
} catch (IOException ex) {
ex.printStackTrace();
return;
}SourceDataLine line = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);if(AudioSystem.isLineSupported(info))
{
try {
line = (SourceDataLine)AudioSystem.getLine(info);
line.open(format);
line.start();int total = 0, red = 0;
byte[] bytes = new byte[4096];
while((red = au.read(bytes, 0, bytes.length)) > -1)
{
line.write(bytes, 0, red);
}
line.flush();
line.drain();
line.stop();
} catch (IOException ex){
ex.printStackTrace();
} catch (LineUnavailableException ex) {
ex.printStackTrace();
}
}
else
System.out.print("Liner Not Supported!");
}
}
}
대략 설명을 하자면 파일로부터 오디오 스트림을 얻어내서 라인에다 쏴주면 소리가 나는 방식입니다.
시스템으로부터 라인을 얻어내는 방법은 두 가지인데 하나는 믹서를 통해 얻어내는 방법과
시스템에서 그냥 가져오는 방법입니다.
위의 방법은 시스템에서 그냥 가져오는 방법입니다.
물론 시스템에서 라인을 제공하지 않으면 소리는 나지 않겠죠.
반응형'개발' 카테고리의 다른 글
PHP 헤더에 UTF-8 선언 (0) 2007.09.29 자바 클립보드 사용하는 방법 (0) 2007.09.28 php에서 엑셀로 출력하기 (0) 2007.09.28 자바에서 윈도우 레지스트리 사용하기 (0) 2007.09.28 [자바] 텍스트컴포넌트의 한글 초기화 세팅하기 (0) 2007.09.18