ADD file via upload

main
p6xlcrq3f 4 months ago
parent feed6a6bc7
commit 8a26eefe1a

@ -0,0 +1,69 @@
package cn.edu.caztc.sokobangame;
import javax.sound.sampled.*;
import java.io.File;
public class MusicPlayer {
private static MusicPlayer instance;
private Clip clip;
private int currentTrackIndex = -1;
private boolean isMuted = true;
public int getCurrentTrackIndex() {
return currentTrackIndex;
}
private MusicPlayer() {}
public static synchronized MusicPlayer getInstance() {
if (instance == null) {
instance = new MusicPlayer();
}
return instance;
}
public void playMusic(int index) {
if (index < 0 || index >= MapConfig.MUSIC_FILES.length) return;
stopMusic();
currentTrackIndex = index;
isMuted = false;
try {
AudioInputStream audioInput = AudioSystem.getAudioInputStream(
new File(MapConfig.MUSIC_PATH + MapConfig.MUSIC_FILES[index]));
clip = AudioSystem.getClip();
clip.open(audioInput);
clip.loop(Clip.LOOP_CONTINUOUSLY);
clip.start();
} catch (Exception e) {
e.printStackTrace();
}
}
public void stopMusic() {
if (clip != null && clip.isRunning()) {
clip.stop();
clip.close();
}
isMuted = true;
}
public void toggleMute() {
if (isMuted) {
playMusic(currentTrackIndex);
} else {
stopMusic();
}
}
public void nextTrack() {
if (currentTrackIndex == -1) return;
int newIndex = (currentTrackIndex + 1) % MapConfig.MUSIC_FILES.length;
playMusic(newIndex);
}
public boolean isMuted() {
return isMuted;
}
}
Loading…
Cancel
Save