réglage du volume de la musique dans les paramètre et le menu pause

This commit is contained in:
Bastien NOEL 2020-05-06 17:10:07 +02:00
parent 3e0d0e7efb
commit fb161fec2c
8 changed files with 116 additions and 22 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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);
@ -47,4 +54,12 @@ public class Musique {
clip.start();
}
public static void volumeUp(Float valeur) {
volume.setValue(volume.getValue() +valeur);
}
public static void volumeDown(Float valeur) {
volume.setValue(volume.getValue() -valeur);
}
}

View File

@ -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

View File

@ -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;
}
}
@ -135,4 +138,16 @@ 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");
}
}

View File

@ -56,17 +56,21 @@ public class PauseController implements Initializable {
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
} 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é");
}
@ -104,6 +108,17 @@ public class PauseController implements Initializable {
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");
}
}

View File

@ -9,7 +9,6 @@
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="480.0" prefWidth="640.0" style="-fx-border-color: white; -fx-background-color: black;" stylesheets="@style/popUp.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ihm.controller.PauseController">
<children>
<VBox alignment="TOP_CENTER" prefHeight="480.0" prefWidth="640.0">
@ -46,6 +45,29 @@
<Insets bottom="5.0" />
</VBox.margin>
</HBox>
<HBox prefHeight="38.0" prefWidth="337.0">
<children>
<Button mnemonicParsing="false" onMouseClicked="#monterVolume" text="Volume +">
<font>
<Font size="14.0" />
</font>
<HBox.margin>
<Insets right="10.0" />
</HBox.margin>
</Button>
<Button mnemonicParsing="false" onMouseClicked="#baisserVolume" text="Volume -">
<font>
<Font size="14.0" />
</font>
<HBox.margin>
<Insets left="10.0" />
</HBox.margin>
</Button>
</children>
<padding>
<Insets bottom="10.0" top="10.0" />
</padding>
</HBox>
<HBox alignment="CENTER_LEFT">
<children>
<Label text="Effet sonores">

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.ComboBox?>
@ -13,12 +14,29 @@
<children>
<HBox alignment="TOP_CENTER" layoutX="146.0" layoutY="171.0" prefHeight="242.0" prefWidth="507.0" spacing="10.0">
<children>
<VBox prefHeight="309.0" prefWidth="127.0" spacing="50.0">
<VBox prefHeight="348.0" prefWidth="195.0" spacing="40.0">
<children>
<CheckBox fx:id="clair" mnemonicParsing="false" styleClass="checkBox" text="%mode.claire" />
<CheckBox fx:id="cmusique" mnemonicParsing="false" styleClass="checkBox" text="%musique" />
<HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="195.0">
<children>
<Button mnemonicParsing="false" onMouseClicked="#monterVolume" styleClass="bouton" stylesheets="@style/menu.css" text="Volume +">
<opaqueInsets>
<Insets />
</opaqueInsets>
<HBox.margin>
<Insets right="10.0" />
</HBox.margin>
</Button>
<Button layoutX="10.0" layoutY="10.0" mnemonicParsing="false" onMouseClicked="#baisserVolume" styleClass="bouton" stylesheets="@style/menu.css" text="Volume -">
<HBox.margin>
<Insets left="10.0" />
</HBox.margin>
</Button>
</children>
</HBox>
<CheckBox fx:id="cbEffetSonore" mnemonicParsing="false" styleClass="checkBox" text="%effet" />
<VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0">
<VBox prefHeight="86.0" prefWidth="195.0" spacing="10.0">
<children>
<Label styleClass="titre" text="%langue">
<font>
@ -27,7 +45,15 @@
</Label>
<ComboBox fx:id="langues" prefHeight="26.0" prefWidth="90.0" />
</children>
<VBox.margin>
<Insets />
</VBox.margin>
</VBox>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0">
<children>
<Button alignment="CENTER" mnemonicParsing="false" onMouseClicked="#enregistre" styleClass="bouton" stylesheets="@style/menu.css" text="%enregistrer" />
</children>
</HBox>
</children>
</VBox>
</children>
@ -37,6 +63,5 @@
<Font size="36.0" />
</font>
</Label>
<Button layoutX="340.0" layoutY="525.0" mnemonicParsing="false" onMouseClicked="#enregistre" styleClass="bouton" stylesheets="@style/menu.css" text="%enregistrer" />
</children>
</Pane>