Files
SAE31_2024/TestV2/src/fr/monkhanny/dorfromantik/utils/MusicPlayer.java

57 lines
1.6 KiB
Java

package fr.monkhanny.dorfromantik.utils;
import fr.monkhanny.dorfromantik.enums.Musics;
import fr.monkhanny.dorfromantik.Options;
import javax.sound.sampled.Clip;
import javax.sound.sampled.FloatControl;
public class MusicPlayer {
private static Clip musicClip;
private static boolean isPlaying = false;
public static void loadMusic(Musics music) {
if (music == Musics.MAIN_MENU_MUSIC) {
musicClip = MusicLoader.loadMusic(Musics.MAIN_MENU_MUSIC.getSoundsPath());
if (musicClip != null) {
setVolume(Options.DEFAULT_VOLUME);
}
}
}
public static void play() {
loadMusic(Musics.MAIN_MENU_MUSIC);
if (musicClip != null && !isPlaying) {
musicClip.start();
isPlaying = true;
}
}
public static void pause() {
if (musicClip != null && isPlaying) {
musicClip.stop();
isPlaying = false;
}
}
public static void stop() {
if (musicClip != null) {
musicClip.stop();
musicClip.setFramePosition(0);
isPlaying = false;
}
}
public static void setVolume(int volume) {
if (musicClip != null) {
FloatControl volumeControl = (FloatControl) musicClip.getControl(FloatControl.Type.MASTER_GAIN);
float range = volumeControl.getMaximum() - volumeControl.getMinimum();
float gain = (range * volume / 100f) + volumeControl.getMinimum();
volumeControl.setValue(gain);
}
}
public static boolean isPlaying() {
return isPlaying;
}
}