Edit MediaPlayer
This commit is contained in:
@@ -19,7 +19,8 @@ public class MusicController {
|
||||
@FXML private ListView<String> lvSongs;
|
||||
@FXML private Label lblStatus;
|
||||
@FXML private Button btnPlayStop;
|
||||
@FXML private Button btnViewPlaylist;
|
||||
|
||||
private int previousSongIndex = -1;
|
||||
|
||||
private MediaPlayer mediaPlayer;
|
||||
|
||||
@@ -41,7 +42,7 @@ public class MusicController {
|
||||
String songName = "";
|
||||
if (a == 0) songName = "Arcade";
|
||||
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 songName = "Careless Whisper";
|
||||
|
||||
@@ -52,43 +53,26 @@ public class MusicController {
|
||||
public void handlePlayAction()
|
||||
{
|
||||
String selectedSong = lvSongs.getSelectionModel().getSelectedItem();
|
||||
int newSongIndex = lvSongs.getSelectionModel().getSelectedIndex();
|
||||
boolean isNewSong = (newSongIndex != previousSongIndex);
|
||||
|
||||
if (selectedSong == null)
|
||||
{
|
||||
lblStatus.setText("Please choose a song");
|
||||
return;
|
||||
}
|
||||
|
||||
String filePath = "src/main/resources/sbu.javafx/songs/" + songName(lvSongs.getSelectionModel().getSelectedIndex()) + ".mp3";
|
||||
File file = new File(filePath);
|
||||
|
||||
boolean isPlayingOrPaused = (mediaPlayer != null &&
|
||||
(mediaPlayer.getStatus() == MediaPlayer.Status.PLAYING ||
|
||||
mediaPlayer.getStatus() == MediaPlayer.Status.PAUSED));
|
||||
|
||||
if (isPlayingOrPaused)
|
||||
if (isNewSong)
|
||||
{
|
||||
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)
|
||||
{
|
||||
mediaPlayer.dispose();
|
||||
mediaPlayer = null;
|
||||
}
|
||||
|
||||
String filePath = "src/main/resources/sbu/javafx/songs/" + songName(lvSongs.getSelectionModel().getSelectedIndex()) + ".mp3";
|
||||
File file = new File(filePath);
|
||||
|
||||
try {
|
||||
Media media = new Media(file.toURI().toString());
|
||||
mediaPlayer = new MediaPlayer(media);
|
||||
@@ -98,19 +82,45 @@ public class MusicController {
|
||||
public void run() {
|
||||
mediaPlayer.stop();
|
||||
btnPlayStop.setText("Play ▶");
|
||||
lblStatus.setText("Finished");
|
||||
}
|
||||
});
|
||||
|
||||
mediaPlayer.play();
|
||||
btnPlayStop.setText("Paused ⏸");
|
||||
lblStatus.setText("Playing : " + songName(lvSongs.getSelectionModel().getSelectedIndex()));
|
||||
previousSongIndex = newSongIndex;
|
||||
|
||||
} catch (Exception 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.
|
||||
|
||||
@FXML
|
||||
public void addToPlaylist()
|
||||
{
|
||||
String selectedSong = lvSongs.getSelectionModel().getSelectedItem();
|
||||
|
||||
Reference in New Issue
Block a user