75 lines
1.7 KiB
Java
75 lines
1.7 KiB
Java
package ihm;
|
|
|
|
import java.io.BufferedInputStream;
|
|
import java.io.InputStream;
|
|
|
|
import javax.sound.sampled.AudioInputStream;
|
|
import javax.sound.sampled.AudioSystem;
|
|
import javax.sound.sampled.Clip;
|
|
import javax.sound.sampled.FloatControl;
|
|
|
|
public class Musique {
|
|
|
|
public static Clip clip;
|
|
public static long clipTimePosition = 0;
|
|
|
|
public static boolean musiqueEnCours = false;
|
|
public static FloatControl volume ;
|
|
|
|
public static void playMusique(InputStream path) {
|
|
|
|
try {
|
|
|
|
InputStream musicPath = path;
|
|
|
|
if (musicPath != null) {
|
|
InputStream bufferedIn = new BufferedInputStream(musicPath);
|
|
|
|
AudioInputStream audioInput = AudioSystem.getAudioInputStream(bufferedIn);
|
|
clip = AudioSystem.getClip();
|
|
clip.open(audioInput);
|
|
|
|
volume = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
|
|
volume.setValue(-20.0f); // Reduit le volume de 20 decibels.
|
|
|
|
clip.start();
|
|
clip.loop(Clip.LOOP_CONTINUOUSLY);
|
|
|
|
} else {
|
|
System.out.println("le fichier audio n'est pas trouvé");
|
|
}
|
|
|
|
} catch (Exception ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public static void pauseMusique(Clip clip) {
|
|
clipTimePosition = clip.getMicrosecondPosition();
|
|
clip.stop();
|
|
}
|
|
|
|
public static void resumeMusique(Clip clip) {
|
|
clip.setMicrosecondPosition(clipTimePosition);
|
|
clip.start();
|
|
}
|
|
|
|
public static void volumeUp(Float valeur) {
|
|
volume.setValue(volume.getValue() +valeur);
|
|
}
|
|
|
|
public static void volumeDown(Float valeur) {
|
|
volume.setValue(volume.getValue() -valeur);
|
|
}
|
|
|
|
public static void setVolume(Float fValeur) {
|
|
volume.setValue(fValeur);
|
|
}
|
|
|
|
public static void setVolume(double dValeur) {
|
|
float decibel = (float) (Math.log(dValeur) / Math.log(10) * 20);
|
|
volume.setValue(decibel);
|
|
}
|
|
|
|
}
|