Hallo,
Ich hoffe das ist die richtige stelle für meine Frage. Ich versuche gerade eine JavaFx application zu machen, wo der nutzer seine Videos aus dem Projekt Ordner per bilder klick auswählen und abspielen kann. Ich gehe dafür die video dateien durch und pro video wird ein bild gerenderet (erstmal statische bilder). Jetzt mchte ich wenn der Nutzer auf ein Bild klickt das die Mediadatei rübergeschickt wird und soll dann vom VideoPlayer abgespielt werden. Aber irgendwie bekomme ich es nicht hin, dass die Media datei initialisiert wird. Vielleicht könnte jemand hier über meinen Code schauen und sagen was die Ursache ist.
videoSelectionController (Hier wird das Video ausgewählt)
Hier ist der videoPlayerController (Player ist hier)
aktuell versuche ich es über einen getter von selectedMedia im videoSelectionController, aber auch hier gibt der null.
Ich hoffe das ist die richtige stelle für meine Frage. Ich versuche gerade eine JavaFx application zu machen, wo der nutzer seine Videos aus dem Projekt Ordner per bilder klick auswählen und abspielen kann. Ich gehe dafür die video dateien durch und pro video wird ein bild gerenderet (erstmal statische bilder). Jetzt mchte ich wenn der Nutzer auf ein Bild klickt das die Mediadatei rübergeschickt wird und soll dann vom VideoPlayer abgespielt werden. Aber irgendwie bekomme ich es nicht hin, dass die Media datei initialisiert wird. Vielleicht könnte jemand hier über meinen Code schauen und sagen was die Ursache ist.
videoSelectionController (Hier wird das Video ausgewählt)
Java:
public void videoLoop() {
File videoDirectory = new File("src\\ressources\\videos");
File[] listOfFiles = videoDirectory.listFiles();
File imgDirectory = new File("src\\ressources\\thumbnails");
File[] imglistOfFiles = imgDirectory.listFiles();
int i = 0;
int j = 0;
for (i = 0; i <= listOfFiles.length - 1; i++) {
for (j = 0; j <= imglistOfFiles.length -1 ; j++) {
if (listOfFiles[i].getName().replaceAll("(\\..+)$","").equals
(imglistOfFiles[j].getName().replaceAll("(\\..+)$",""))) {
ImageView imgView = new ImageView();
Image img = new Image("file:" + imglistOfFiles[j].getAbsolutePath());
imgView.setImage(img);
int finalJ1 = j;
mediaPath ="src\\ressources\\videos\\" + imglistOfFiles[finalJ1].getName().replaceAll("(\\..+)$","") + ".mp4";
imgView.setOnMouseClicked(event -> {
//TODO SENDING DATA TO PLAYERSCREEN
selectionMedia = new Media(Paths.get(mediaPath).toUri().toString());
var window = utilities.viewSwitcher.getWindow(event);
var loader = new FXMLLoader();
loader.setLocation(videoSelectionController.class.getResource("/view/videoPlayerView.fxml"));
videoPlayerController videoPlayerController = new videoPlayerController();
videoPlayerController.setMedia(selectionMedia);
try {
window.setScene(new Scene(loader.load()));
} catch (IOException e) {
e.printStackTrace();
}
window.sizeToScene();
});
buttonBox.getChildren().add(imgView);
}
}
}
}
public Media getSelectionMedia() {
return selectionMedia;
}
Hier ist der videoPlayerController (Player ist hier)
Java:
Media media ;
public videoSelectionController controller;
public void initialize(URL url, ResourceBundle resourceBundle) {
controller = new videoSelectionController();
videoPlayer = new MediaView();
System.out.println("Controller: " + controller.getSelectionMedia());
MediaPlayer player = new MediaPlayer(controller.getSelectionMedia()); -> getSelection aus videoSelection = null
videoPlayer.setMediaPlayer(player);
player.play();
}
aktuell versuche ich es über einen getter von selectedMedia im videoSelectionController, aber auch hier gibt der null.