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