From 0078ea27e90eed233b541c1808d6909ea276a9b5 Mon Sep 17 00:00:00 2001 From: Peter <pt033@hdm-stuttgart.de> Date: Sat, 9 Dec 2023 15:02:20 +0100 Subject: [PATCH] update(ui): add basic volume control for main manu music #14 --- .../Controller/MusicPlayerSingleton.java | 2 +- .../Controller/OptionsController.java | 24 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) 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 0337d7e5..5653a7c8 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 947e9480..6cba2a46 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); + }); } } -- GitLab