package org.mp; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Slider; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.stage.FileChooser; import javafx.stage.Stage; import java.io.File; public class MusicPlayer extends Application { private MediaPlayer mediaPlayer; @Override public void start(Stage primaryStage) { BorderPane root = new BorderPane(); // Create media player controls HBox controls = new HBox(); Button openButton = new Button("Open"); openButton.setOnAction(e -> openFile(primaryStage)); Button playPauseButton = new Button("Play"); playPauseButton.setOnAction(e -> togglePlayPause()); Slider volumeSlider = new Slider(0, 100, 50); volumeSlider.valueProperty().addListener((obs, oldVal, newVal) -> setVolume(newVal.doubleValue() / 100)); controls.getChildren().addAll(openButton, playPauseButton, volumeSlider); root.setTop(controls); Scene scene = new Scene(root, 400, 200); primaryStage.setScene(scene); primaryStage.setTitle("Music Player"); primaryStage.show(); } private void openFile(Stage primaryStage) { FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Open Music File"); File selectedFile = fileChooser.showOpenDialog(primaryStage); if (selectedFile != null) { Media media = new Media(selectedFile.toURI().toString()); mediaPlayer = new MediaPlayer(media); mediaPlayer.setOnEndOfMedia(() -> mediaPlayer.stop()); // Stop when playback ends } } private void togglePlayPause() { if (mediaPlayer != null) { if (mediaPlayer.getStatus() == MediaPlayer.Status.PLAYING) { mediaPlayer.pause(); } else { mediaPlayer.play(); } } } private void setVolume(double volume) { if (mediaPlayer != null) { mediaPlayer.setVolume(volume); } } public static void main(String[] args) { launch(args); } }