Witam mam problem a mianowicie nie mogę sobie poradzić z odtwarzaniem plików które zaznaczam na listview, tzn pliki się odtwarzają tylko nie mogę ich zapauzować ,zastopować, chyba ze na sztywno wpisze w mp3 lokalizacje pliku to wtedy wszystko smiga. Mógł by mi ktoś coś doradzić aby listview działał jako playlista??.
public class MainController {
@FXML
private Slider changeVolume;
@FXML
public ListView listView;
String mp3 = "lokalizacja pliku"; //mainController.listView.getSelectionModel().getSelectedItem().toString();
Media hit = new Media(new File(mp3).toURI().toString());
MediaPlayer mediaPlayer = new MediaPlayer(hit);
public void initialize() {
changeVolume.setValue(mediaPlayer.getVolume() * 100);
changeVolume.valueProperty().addListener(new InvalidationListener() {
@Override
public void invalidated(Observable observable) {
mediaPlayer.setVolume(changeVolume.getValue() / 100);
}
});
}
@FXML
public void playButton() {
if (listView.getSelectionModel().getSelectedItem() != null) {
mediaPlayer.play();
System.out.println(mp3);
} else
System.out.println("zaznacz");
}
@FXML
public void pauseButton() {
mediaPlayer.pause();
}
@FXML
public void stopButton() {
mediaPlayer.stop();
}
public void setListView(File directory) {
File folder = new File(String.valueOf(directory));
File[] listOfFiles = folder.listFiles();
ObservableList<File> data = FXCollections.observableArrayList(listOfFiles);
for (File file : listOfFiles)
listView.setItems(data);
}
public void chooseDirectory() {
Stage primaryStage = null;
DirectoryChooser directoryChooser = new DirectoryChooser();
File selectedDirectory = directoryChooser.showDialog(new Stage());
setListView(selectedDirectory);
}
public void playMouse(MouseEvent mouseEvent) {
if (mouseEvent.getClickCount() == 2) {
String mp3 = listView.getSelectionModel().getSelectedItem().toString();
Media hit = new Media(new File(mp3).toURI().toString());
MediaPlayer mediaPlayer = new MediaPlayer(hit);
try {
mediaPlayer.play();
System.out.println(mp3);
} catch (Exception ex) {
}
}
}
}