package test;
import java.io.File;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
public class Test
{
public static void main(String[] args) throws Exception
{
while(true)
{
File a = new File("jay-someday-europe.wav");
AudioInputStream b = AudioSystem.getAudioInputStream(a);
Clip c = AudioSystem.getClip();
c.open(b);
c.start();
Thread.sleep(c.getMicrosecondLength()/1000);
}
}
}
유의사항
1. 이 예제에서는 wav 외의 음악포맷은 지원되지 않음
2. Thread.sleep은 밀리초 단위의 지정시간동안 Thread를 휴지시킴.
3. getMicrosecondLength()는 재생하는 곡의 길이를 마이크로초 단위로 가져옴.
가장 중요한 것은 Thread.sleep()이 없으면 음악을 들을 수 없다는 것!
음악재생 구현하려고 찾아본 다른 예제들에서는
외부라이브러리를 이용한 예제들이 많았는데,
그래서인지 Thread.sleep()구문이 없었다.
똑같이 구현하고도 음악을 못 듣고, 한참 원인을 찾다가
Thread.sleep() 덕분에 해결하게 되었다
'자바 JAVA' 카테고리의 다른 글
간단한 매개변수의 다형성 활용예제 (0) | 2021.06.14 |
---|---|
toString()메소드 오버라이딩 사용예 (0) | 2021.06.14 |
상수는 왜 final 예약어로 선언하나요? - 자바 기초 (0) | 2021.06.09 |
생성자 매개변수 다 넘겼는데 객체 만들 때 오류? super() 예약어! (0) | 2021.06.09 |
오버라이딩 overriding 기초 예제 (0) | 2021.06.08 |