본문 바로가기

자바 JAVA

자바 음악파일 재생 단순한 예제

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() 덕분에 해결하게 되었다