Select Git revision
Forked from
LABOUREL Arnaud / Firefighter template
Source project has a limited visibility.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
SoundEngine.java 1.79 KiB
package engine.sound;
import engine.Engine;
import engine.Kernel;
import java.io.File;
import java.util.HashMap;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.*;
public class SoundEngine implements Engine {
private static Clip clip; // Ajout de cette variable pour stocker le clip en cours de lecture
private HashMap<String, Boolean> soundMap = new HashMap<String, Boolean>();
private boolean isMuted = false;
public SoundEngine() {
}
public void playMusic(String location){
if(isMuted) return;
try {
File musicPath = new File(location);
if (musicPath.exists()) {
AudioInputStream audioInput = AudioSystem.getAudioInputStream(musicPath);
clip = AudioSystem.getClip();
clip.open(audioInput);
clip.start();
}
else {
System.out.println(" le fichier n'existe pas");
}
}
catch (Exception e) {
System.out.println(e);
}
}
public static void stopMusic() {
if (clip != null && clip.isRunning()) {
clip.stop();
}
}
@Override
public void update() {
if(isMuted) return;
for (String sound : soundMap.keySet()) {
if (soundMap.get(sound)) {
System.out.println(soundMap.get(sound));
playMusic(sound);
}
}
}
public void addSound(String soundPath, boolean isPlaying) {
System.out.println("SoundEngine addSound " + isPlaying);
soundMap.put(soundPath, isPlaying);
}
public void mute(){
isMuted = !isMuted;
}
@Override
public void restart() {
}
}