diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java index 0337d7e544b593ce0f36e4a71ca1f55343d50141..5653a7c8cbca3e0278568d08fcda7dc7e1712c17 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/MusicPlayerSingleton.java @@ -2,7 +2,7 @@ package de.hdm_stuttgart.battlearena.Controller; import javafx.scene.media.MediaPlayer; public class MusicPlayerSingleton { -// creating a singleton so it can be stopped from other controller classes +// creating a singleton, so it can be stopped from other controller classes private static final MusicPlayerSingleton instance = new MusicPlayerSingleton(); private MediaPlayer mediaPlayer; diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java index 947e948024cc78c1950afd432893832f0ee1b883..6cba2a46980f3f81abb00e59b69bb6b4666104f4 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/OptionsController.java @@ -15,8 +15,8 @@ public class OptionsController implements Initializable { @FXML public VBox parent; @FXML public Slider volumeSlider; SceneLoader sceneLoader = new SceneLoader(); - public int volume; - private boolean setVolume = false; + public double volume; + MusicPlayerSingleton musicPlayer = MusicPlayerSingleton.getInstance(); public void creditScene() throws IOException { parent.getChildren().clear(); @@ -30,16 +30,16 @@ public class OptionsController implements Initializable { @Override public void initialize(URL url, ResourceBundle resourceBundle) { -// variables keep getting re-initialized after switching scenes. For now not working!!!!! - if (setVolume) { - volumeSlider.setValue(volume); - } + setVolume(); + } -// TODO: use Runtime Database to save volume - volumeSlider.setOnMouseReleased(mouseEvent -> { - setVolume = true; - volume = (int) volumeSlider.getValue(); - System.out.println("Volume: " + volume); - }); + private void setVolume() { +// need a runtime database to save volume + volumeSlider.valueProperty().addListener((observableValue, oldValue, newValue) -> { + musicPlayer.getMediaPlayer().setVolume(volume); + volume = newValue.doubleValue() / 100; + musicPlayer.getMediaPlayer().setVolume(volume); + System.out.println(volume); + }); } }