Develop #1
@@ -19,7 +19,8 @@ public class MusicController {
|
|||||||
@FXML private ListView<String> lvSongs;
|
@FXML private ListView<String> lvSongs;
|
||||||
@FXML private Label lblStatus;
|
@FXML private Label lblStatus;
|
||||||
@FXML private Button btnPlayStop;
|
@FXML private Button btnPlayStop;
|
||||||
@FXML private Button btnViewPlaylist;
|
|
||||||
|
private int previousSongIndex = -1;
|
||||||
|
|
||||||
private MediaPlayer mediaPlayer;
|
private MediaPlayer mediaPlayer;
|
||||||
|
|
||||||
@@ -41,7 +42,7 @@ public class MusicController {
|
|||||||
String songName = "";
|
String songName = "";
|
||||||
if (a == 0) songName = "Arcade";
|
if (a == 0) songName = "Arcade";
|
||||||
else if (a == 1) songName = "How i love you";
|
else if (a == 1) songName = "How i love you";
|
||||||
else if (a == 2) songName = "Memmories";
|
else if (a == 2) songName = "Memories";
|
||||||
else if (a == 3) songName = "Night Changes";
|
else if (a == 3) songName = "Night Changes";
|
||||||
else songName = "Careless Whisper";
|
else songName = "Careless Whisper";
|
||||||
|
|
||||||
@@ -52,43 +53,26 @@ public class MusicController {
|
|||||||
public void handlePlayAction()
|
public void handlePlayAction()
|
||||||
{
|
{
|
||||||
String selectedSong = lvSongs.getSelectionModel().getSelectedItem();
|
String selectedSong = lvSongs.getSelectionModel().getSelectedItem();
|
||||||
|
int newSongIndex = lvSongs.getSelectionModel().getSelectedIndex();
|
||||||
|
boolean isNewSong = (newSongIndex != previousSongIndex);
|
||||||
|
|
||||||
if (selectedSong == null)
|
if (selectedSong == null)
|
||||||
{
|
{
|
||||||
lblStatus.setText("Please choose a song");
|
lblStatus.setText("Please choose a song");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String filePath = "src/main/resources/sbu.javafx/songs/" + songName(lvSongs.getSelectionModel().getSelectedIndex()) + ".mp3";
|
if (isNewSong)
|
||||||
File file = new File(filePath);
|
|
||||||
|
|
||||||
boolean isPlayingOrPaused = (mediaPlayer != null &&
|
|
||||||
(mediaPlayer.getStatus() == MediaPlayer.Status.PLAYING ||
|
|
||||||
mediaPlayer.getStatus() == MediaPlayer.Status.PAUSED));
|
|
||||||
|
|
||||||
if (isPlayingOrPaused)
|
|
||||||
{
|
{
|
||||||
if (mediaPlayer.getStatus() == MediaPlayer.Status.PLAYING)
|
|
||||||
{
|
|
||||||
mediaPlayer.pause();
|
|
||||||
btnPlayStop.setText("Paused ⏸");
|
|
||||||
lblStatus.setText("Playing : " + songName(lvSongs.getSelectionModel().getSelectedIndex()));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if (mediaPlayer.getStatus() == MediaPlayer.Status.PAUSED)
|
|
||||||
{
|
|
||||||
mediaPlayer.play();
|
|
||||||
btnPlayStop.setText("Play ▶");
|
|
||||||
lblStatus.setText("Paused");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mediaPlayer != null)
|
if (mediaPlayer != null)
|
||||||
{
|
{
|
||||||
mediaPlayer.dispose();
|
mediaPlayer.dispose();
|
||||||
mediaPlayer = null;
|
mediaPlayer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String filePath = "src/main/resources/sbu/javafx/songs/" + songName(lvSongs.getSelectionModel().getSelectedIndex()) + ".mp3";
|
||||||
|
File file = new File(filePath);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Media media = new Media(file.toURI().toString());
|
Media media = new Media(file.toURI().toString());
|
||||||
mediaPlayer = new MediaPlayer(media);
|
mediaPlayer = new MediaPlayer(media);
|
||||||
@@ -98,19 +82,45 @@ public class MusicController {
|
|||||||
public void run() {
|
public void run() {
|
||||||
mediaPlayer.stop();
|
mediaPlayer.stop();
|
||||||
btnPlayStop.setText("Play ▶");
|
btnPlayStop.setText("Play ▶");
|
||||||
|
lblStatus.setText("Finished");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mediaPlayer.play();
|
mediaPlayer.play();
|
||||||
btnPlayStop.setText("Paused ⏸");
|
btnPlayStop.setText("Paused ⏸");
|
||||||
lblStatus.setText("Playing : " + songName(lvSongs.getSelectionModel().getSelectedIndex()));
|
lblStatus.setText("Playing : " + songName(lvSongs.getSelectionModel().getSelectedIndex()));
|
||||||
|
previousSongIndex = newSongIndex;
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (mediaPlayer.getStatus() == MediaPlayer.Status.PLAYING)
|
||||||
|
{
|
||||||
|
mediaPlayer.pause();
|
||||||
|
btnPlayStop.setText("Play ▶");
|
||||||
|
lblStatus.setText("Paused");
|
||||||
|
}
|
||||||
|
else if (mediaPlayer.getStatus() == MediaPlayer.Status.PAUSED)
|
||||||
|
{
|
||||||
|
mediaPlayer.play();
|
||||||
|
btnPlayStop.setText("Pause ⏸");
|
||||||
|
lblStatus.setText("Playing: " + songName(lvSongs.getSelectionModel().getSelectedIndex()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mediaPlayer.play();
|
||||||
|
btnPlayStop.setText("Pause ⏸");
|
||||||
|
lblStatus.setText("Playing: " + songName(lvSongs.getSelectionModel().getSelectedIndex()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//TODO: Logic to add a specific song to the user's playlist.
|
//TODO: Logic to add a specific song to the user's playlist.
|
||||||
|
|
||||||
|
@FXML
|
||||||
public void addToPlaylist()
|
public void addToPlaylist()
|
||||||
{
|
{
|
||||||
String selectedSong = lvSongs.getSelectionModel().getSelectedItem();
|
String selectedSong = lvSongs.getSelectionModel().getSelectedItem();
|
||||||
|
|||||||
Reference in New Issue
Block a user