From 574ef215ee2f136e7bef9749857481418cefdff5 Mon Sep 17 00:00:00 2001 From: Mobina Date: Thu, 28 May 2026 21:17:26 +0330 Subject: [PATCH] =?UTF-8?q?=D8=A7=D8=B6=D8=A7=D9=81=D9=87=20=DA=A9=D8=B1?= =?UTF-8?q?=D8=AF=D9=86=20=D8=AF=DA=A9=D9=85=D9=87=20=DB=8C=20=D9=82=D8=A8?= =?UTF-8?q?=D9=84=20=D9=88=20=D8=A8=D8=B9=D8=AF=20=D9=85=D9=88=D9=86=D8=AF?= =?UTF-8?q?=D9=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/sbu/javafx/Main.java | 2 +- src/main/java/sbu/javafx/MusicController.java | 34 +++++++++++--- src/main/resources/sbu/javafx/App-view.fxml | 44 +++++++------------ 3 files changed, 46 insertions(+), 34 deletions(-) diff --git a/src/main/java/sbu/javafx/Main.java b/src/main/java/sbu/javafx/Main.java index b5bf9a3..8330187 100644 --- a/src/main/java/sbu/javafx/Main.java +++ b/src/main/java/sbu/javafx/Main.java @@ -17,7 +17,7 @@ public class Main extends Application { controller.musicsListView.getItems().addAll( new Song("Blinding Lights", "The Weeknd","/musics/The-Weeknd-Blinding-Lights-128.mp3"), - new Song("Comme des enfants", "Coert De Pirate","/musics/Coeur-De-Pirate-Comme-des-enfants-128.pm3"), + new Song("Comme des enfants", "Coert De Pirate","/musics/Coeur-De-Pirate-Comme-des-enfants-128.mp3"), new Song("Slow Down", "GRAE", "/musics/GRAE-Slow-Down-128.mp3"), new Song("Cigarettes out the Window", "TV Girl", "/music/TV-Girl-Cigarettes-out-the-Window-128.mp3"), new Song("deja vu", "Olivia Rodirgo", "/musics/Olivia-Rodrigo-deja-vu-320.mp3"), diff --git a/src/main/java/sbu/javafx/MusicController.java b/src/main/java/sbu/javafx/MusicController.java index 61d19bb..e2e24e2 100644 --- a/src/main/java/sbu/javafx/MusicController.java +++ b/src/main/java/sbu/javafx/MusicController.java @@ -11,6 +11,8 @@ import javafx.scene.image.ImageView; import javafx.scene.layout.*; import javafx.scene.Scene; import javafx.scene.layout.VBox; +import javafx.scene.media.Media; +import javafx.scene.media.MediaPlayer; import javafx.util.Duration; @@ -38,12 +40,17 @@ public class MusicController { private boolean isPlaying=false; private boolean isMute=false; private boolean isOpen=false; + private boolean isRepeat=false; private Song currentSong = null; ImageView playIcon; ImageView pauseIcon; ImageView audioIcon; ImageView muteIcon; + String path; + Media media; + MediaPlayer player ; + // TODO: Define your UI components using the @FXML annotation. @FXML @@ -161,11 +168,21 @@ public class MusicController { } public void play(ActionEvent event, Song song){ + currentSong=song; nowPlayingLabel.setText(song.getName()); + if (!isPlaying) playPause(event); - //کد پخش + + // کد پخش موسیقی + path = getClass() + .getResource(song.getPath()) + .toExternalForm(); + media = new Media(path); + player = new MediaPlayer(media); + + player.play(); } @FXML @@ -173,7 +190,10 @@ public class MusicController { if(isPlaying){ playPauseBtn.setGraphic(playIcon); isPlaying=false; - //کد توقف اینجاست چون برای هر توقفی دکمه ی پاز رو میزنیم ولی برای پلی ممکنه از بین آهنگ ها بزنیم + + //کد توقف + player.pause(); + } else{ playPauseBtn.setGraphic(pauseIcon); @@ -183,11 +203,14 @@ public class MusicController { @FXML public void mute(ActionEvent e){ - isMute=!isMute; if(!isMute){ - audioBtn.setGraphic(audioIcon); - }else{ audioBtn.setGraphic(muteIcon); + player.setVolume(0); + isMute=true; + }else{ + audioBtn.setGraphic(audioIcon); + player.setVolume(100); + isMute=false; } } @@ -219,7 +242,6 @@ public class MusicController { if(!isOpen){ // باز کردن پلی‌لیست - if(playlistListView.getItems().isEmpty()){ Alert alert = new Alert(Alert.AlertType.WARNING); diff --git a/src/main/resources/sbu/javafx/App-view.fxml b/src/main/resources/sbu/javafx/App-view.fxml index 33ba601..91cf132 100644 --- a/src/main/resources/sbu/javafx/App-view.fxml +++ b/src/main/resources/sbu/javafx/App-view.fxml @@ -11,11 +11,20 @@ - + - - - - - - -