mp3확장자로 된 배경음악파일을 준비합니다.
music폴더를 생성합니다.
음악파일을 재생할 수 있도록 JLayer라이브러리를 설치합니다.
package dynamic_beat;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import javazoom.jl.player.Player; // JLayer라이브러리
public class Music extends Thread { // 쓰레드를 상속
private Player player; // 음악 라이브러리
private boolean isLoop; // 무한반복 변수
private File file;
private FileInputStream fis;
private BufferedInputStream bis;
// 입출력 효율을 위한 변수 설정
public Music(String name, boolean isLoop) { // 곡이름,반복 생성자 생성
try {
this.isLoop = isLoop; // 초기화
file = new File(Main.class.getResource("../music/" + name).toURI()); // 음악 파일 실행
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
player = new Player(bis);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public int getTime() { // 노트판정을 위한 음악의 시간단위 분석메서드
if (player == null)
return 0;
return player.getPosition();
}
public void close() { // 필요시 음악 종료
isLoop = false;
player.close();
this.interrupt(); // 쓰레드 중지
}
@Override
public void run() { // 쓰레드 상속시 사용
try {
do {
player.play(); // 곡 무한반복 실행
} while(isLoop);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
Music클래스
public DynamicBeat() {
setTitle("Dynamic Beat");
setSize(Main.SCREEN_WHIDTH, Main.SCREEN_HEIGHT);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
introBackground = new ImageIcon(Main.class.getResource("../images/introBackground(Title).jpg")).getImage();
Music introMusic = new Music("introMusic.mp3", true);
introMusic.start();
} // 게임 실행시 배경음악 무한반복 재생
Main클래스
'개인프로젝트 > 리듬게임만들기' 카테고리의 다른 글
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 6.곡 선택 화면 디자인 (1) | 2024.02.06 |
---|---|
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 5. 화면전환 (0) | 2024.02.06 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 4. 메뉴 바 구현 (0) | 2024.02.05 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 2.게임 시작화면 개발하기 (0) | 2024.02.03 |
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 1.자바 개발환경 세팅 과 GUI 시작하기 (0) | 2024.02.02 |