From 88dcf09ca5a937d5be75b3d960c6fcb6b309da23 Mon Sep 17 00:00:00 2001 From: Peter <pt033@hdm-stuttgart.de> Date: Fri, 8 Dec 2023 18:01:00 +0100 Subject: [PATCH] add(controller): put creation of mediaPlayer into seperate class --- .../Controller/CreateMediaPlayer.java | 23 +++++++++++++++++++ .../Controller/IntroController.java | 15 ++++-------- 2 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateMediaPlayer.java diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateMediaPlayer.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateMediaPlayer.java new file mode 100644 index 00000000..03fbd835 --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/CreateMediaPlayer.java @@ -0,0 +1,23 @@ +package de.hdm_stuttgart.battlearena.Controller; + +import javafx.scene.layout.BorderPane; +import javafx.scene.media.Media; +import javafx.scene.media.MediaPlayer; +import javafx.scene.media.MediaView; + +import java.io.File; + +public class CreateMediaPlayer { + public MediaPlayer getMediaPlayer(MediaView mediaView, File file, BorderPane parent) { + Media media = new Media(file.toURI().toString()); + MediaPlayer mediaPlayer = new MediaPlayer(media); + +// resizing once the scenes has been loaded to get width and height property + mediaPlayer.setOnReady(() -> { + mediaView.fitWidthProperty().bind(parent.getScene().widthProperty()); + mediaView.fitHeightProperty().bind(parent.getScene().heightProperty()); + }); + mediaPlayer.setAutoPlay(true); + return mediaPlayer; + } +} diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java index cc1eebcb..e8579e55 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/IntroController.java @@ -7,7 +7,6 @@ import javafx.scene.Cursor; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; -import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; import javafx.stage.Stage; @@ -25,7 +24,7 @@ public class IntroController implements Initializable { @FXML public BorderPane introParent; private final String fileName = "src/main/resources/textures/videos/"; -// nextVideo() will iterate through this array so the next video will be played TODO: change the videos to non memes lmao + // nextVideo() will iterate through this array so the next video will be played TODO: change the videos to non memes lmao private final String[] videos = {"sony.mp4", "gamecube.mp4", "gameboy.mp4", "monke.mp4"}; private File file = new File(fileName + videos[0]); private int counter = 0; @@ -39,16 +38,10 @@ public class IntroController implements Initializable { } private void createMediaPlayer() { - Media media = new Media(file.toURI().toString()); - mediaPlayer = new MediaPlayer(media); +// initializing this.mediaPlayer + mediaPlayer = new CreateMediaPlayer().getMediaPlayer(mediaView, file, introParent); mediaView.setMediaPlayer(mediaPlayer); -// resizing once the scenes has been loaded to get width and height property - mediaPlayer.setOnReady(() -> { - mediaView.fitWidthProperty().bind(introParent.getScene().widthProperty()); - mediaView.fitHeightProperty().bind(introParent.getScene().heightProperty()); - }); - mediaPlayer.setAutoPlay(true); mediaPlayer.setOnEndOfMedia(() -> { if (counter == videos.length - 1) { videoEnd(); @@ -67,7 +60,7 @@ public class IntroController implements Initializable { }); } -// TODO: maybe look into using SceneLoader class + // TODO: maybe look into using SceneLoader class private void videoEnd() { try { mediaPlayer.dispose(); -- GitLab