From fb161fec2c6977e14a876462db61b4dd77b405e2 Mon Sep 17 00:00:00 2001 From: Bastien NOEL Date: Wed, 6 May 2020 17:10:07 +0200 Subject: [PATCH] =?UTF-8?q?r=C3=A9glage=20du=20volume=20de=20la=20musique?= =?UTF-8?q?=20dans=20les=20param=C3=A8tre=20et=20le=20menu=20pause?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/domaine/properties/langue.properties | 2 +- src/domaine/properties/langue_fr.properties | 2 +- src/ihm/Musique.java | 21 +++++++++++-- src/ihm/controller/MenuController.java | 2 ++ src/ihm/controller/ParametreController.java | 21 +++++++++++-- src/ihm/controller/PauseController.java | 35 +++++++++++++++------ src/ihm/ressources/Pause.fxml | 24 +++++++++++++- src/ihm/ressources/parametre.fxml | 31 ++++++++++++++++-- 8 files changed, 116 insertions(+), 22 deletions(-) diff --git a/src/domaine/properties/langue.properties b/src/domaine/properties/langue.properties index 8714ef8..f8fdaba 100644 --- a/src/domaine/properties/langue.properties +++ b/src/domaine/properties/langue.properties @@ -1,5 +1,5 @@ jouer=Jouer -regles=Régles +regles=Rčgles commencer.partie=Commencer la partie entrez.nom.joueur= Entrez le nom des joueurs nombre.joueur.minimum=(Il faut au moins 4 joueurs) diff --git a/src/domaine/properties/langue_fr.properties b/src/domaine/properties/langue_fr.properties index 56790ca..1356a68 100644 --- a/src/domaine/properties/langue_fr.properties +++ b/src/domaine/properties/langue_fr.properties @@ -1,5 +1,5 @@ jouer=Jouer -regles=Régles +regles=Rčgles commencer.partie=Commencer la partie entrez.nom.joueur= Entrez le nom des joueurs nombre.joueur.minimum=(Il faut au moins 4 joueurs) diff --git a/src/ihm/Musique.java b/src/ihm/Musique.java index d3f8a91..89880e5 100644 --- a/src/ihm/Musique.java +++ b/src/ihm/Musique.java @@ -6,25 +6,32 @@ 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; + static FloatControl volume ; public static void playMusique(InputStream path) { try { InputStream musicPath = path; - - if (musicPath!=null) { + + 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); @@ -46,5 +53,13 @@ public class Musique { 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); + } } diff --git a/src/ihm/controller/MenuController.java b/src/ihm/controller/MenuController.java index 46923aa..a76cd25 100644 --- a/src/ihm/controller/MenuController.java +++ b/src/ihm/controller/MenuController.java @@ -30,6 +30,8 @@ public class MenuController implements Initializable{ input = getClass().getResourceAsStream("/ihm/ressources/img/logo.png"); Image image = new Image(input); titre.setImage(image); + + } @FXML diff --git a/src/ihm/controller/ParametreController.java b/src/ihm/controller/ParametreController.java index 83a9f2b..e7bf0df 100644 --- a/src/ihm/controller/ParametreController.java +++ b/src/ihm/controller/ParametreController.java @@ -31,7 +31,7 @@ public class ParametreController implements Initializable { public static boolean cbMusiqueCoche = false; // verifi si la checbox musical est coche public static boolean cbSonCoche = false; boolean MusiqueLancee = false; //verifi si la musique a dĂ©ja Ă©tĂ© lancĂ© une première fois - + String filepathMusique = "/ihm/ressources/musique/The_Red_Fox_Tavern.wav"; // lien vers la musique : https://www.youtube.com/watch?v=LBpKUIyOHdo InputStream fileMusique = getClass().getResourceAsStream("/ihm/ressources/musique/The_Red_Fox_Tavern.wav"); @@ -42,6 +42,7 @@ public class ParametreController implements Initializable { @Override public void initialize(URL arg0, ResourceBundle arg1) { + langues.getItems().add("Anglais"); langues.getItems().add("Allemand"); langues.getItems().add("Espagnol"); @@ -59,11 +60,12 @@ public class ParametreController implements Initializable { if (cmusique.isSelected() == true) { cbMusiqueCoche = true; - if (Musique.clipTimePosition == 0 && MusiqueLancee == false) { // si la musique n'a jamais Ă©tĂ© lancĂ© + if (Musique.clipTimePosition == 0 && MusiqueLancee == false && Musique.musiqueEnCours != true) { // si la musique n'a jamais Ă©tĂ© lancĂ© Musique.playMusique(fileMusique); + Musique.musiqueEnCours = true; MusiqueLancee = true; - } else { + } else if (Musique.musiqueEnCours != true) { Musique.resumeMusique(Musique.clip); // si elle a deja Ă©tĂ© lancĂ© mais mis en pause, reprend a partir du point d'arret } @@ -71,6 +73,7 @@ public class ParametreController implements Initializable { if (cbMusiqueCoche == true) { cbMusiqueCoche = false; Musique.pauseMusique(Musique.clip); //met en pause la musique + Musique.musiqueEnCours = false; } } @@ -134,5 +137,17 @@ public class ParametreController implements Initializable { } + + @FXML + public void monterVolume(MouseEvent mouseEvent) throws IOException{ + Musique.volumeUp(5.f); + System.out.println("on monte le son"); + } + + @FXML + public void baisserVolume(MouseEvent mouseEvent) throws IOException{ + Musique.volumeDown(5.f); + System.out.println("on baisse le son"); + } } diff --git a/src/ihm/controller/PauseController.java b/src/ihm/controller/PauseController.java index 80ead1f..83b5088 100644 --- a/src/ihm/controller/PauseController.java +++ b/src/ihm/controller/PauseController.java @@ -32,7 +32,7 @@ public class PauseController implements Initializable { boolean MusiqueLancee = ParametreController.cbMusiqueCoche; boolean SonLance = ParametreController.cbSonCoche; - + @Override public void initialize(URL arg0, ResourceBundle arg1) { @@ -55,18 +55,22 @@ public class PauseController implements Initializable { if (fileMusique != null) { if (cbMusique.isSelected()) { System.out.println("\tLancement de la musique"); - - if (Musique.clipTimePosition == 0 && MusiqueLancee == false) { // si la musique n'a jamais Ă©tĂ© lancĂ© + + if (Musique.clipTimePosition == 0 && MusiqueLancee == false && Musique.musiqueEnCours != true) { // si la musique n'a jamais Ă©tĂ© lancĂ© Musique.playMusique(fileMusique); + Musique.musiqueEnCours = true; MusiqueLancee = true; - } else - Musique.resumeMusique(Musique.clip); // si elle a deja Ă©tĂ© lancĂ© mais mis en pause, reprend a partir du point d'arret + } else if (MusiqueLancee ==false && Musique.musiqueEnCours != true) { + Musique.resumeMusique(Musique.clip); // si elle a deja Ă©tĂ© lancĂ© mais mis en pause, reprend a partir du point d'arret + } + } else { Musique.pauseMusique(Musique.clip); // met en pause la musique + Musique.musiqueEnCours = false; + MusiqueLancee = false; System.out.println("\tMise en pause de la musique"); } - } - else { + } else { System.out.println("fichier audio non trouvĂ©"); } @@ -98,12 +102,23 @@ public class PauseController implements Initializable { System.err.println("Fin de partie"); Stage appStage = (Stage) ((Node) me.getSource()).getScene().getWindow(); appStage.close(); - + final URL fxmlURL = getClass().getResource("/ihm/ressources/Menu.fxml"); final ResourceBundle bundle = ResourceBundle.getBundle("domaine.properties.langue", Locale.FRENCH); final FXMLLoader fxmlLoader = new FXMLLoader(fxmlURL, bundle); AnchorPane root = fxmlLoader.load(); - - + + } + + @FXML + public void monterVolume(MouseEvent mouseEvent) throws IOException{ + Musique.volumeUp(5.f); + System.out.println("on monte le son"); + } + + @FXML + public void baisserVolume(MouseEvent mouseEvent) throws IOException{ + Musique.volumeDown(5.f); + System.out.println("on baisse le son"); } } diff --git a/src/ihm/ressources/Pause.fxml b/src/ihm/ressources/Pause.fxml index 5da995b..b925919 100644 --- a/src/ihm/ressources/Pause.fxml +++ b/src/ihm/ressources/Pause.fxml @@ -9,7 +9,6 @@ - @@ -46,6 +45,29 @@ + + + + + + + + +