JavaFX Mediaplayer

Mehvish Ashiq 15 Februar 2024
  1. Verwenden von integriertem JavaFX zur Erstellung eine Media Player
  2. Richten Sie JavaFX ein und verwenden Sie es, um einen Media Player zu erstellen
JavaFX Mediaplayer

In diesem Artikel lernen wir, wie man mit JavaFX einen Mediaplayer in Java erstellt. Dazu verwenden wir das eingebaute JavaFX und richten es manuell ein.

Verwenden von integriertem JavaFX zur Erstellung eine Media Player

Um das integrierte JavaFX zu verwenden, benötigen wir Java 8, da es JavaFX enthält. Wir müssen es nicht separat installieren.

Für diesen Abschnitt verwenden wir die folgenden Tools.

  • Java 8
  • NetBeans 13 (Sie können jede IDE Ihrer Wahl verwenden)

Beispielcode (Main.java, die Hauptklasse):

// write the package name (yours may be different)
package com.mycompany.main;

// import necessary libraries
import static javafx.application.Application.launch;

import java.net.URL;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

// Main Class
public class Main extends Application {
  // main method
  public static void main(String[] args) {
    launch(args);
  } // end main method

  /**
   *
   * @param primaryStage
   * @throws Exception
   */
  @Override
  public void start(Stage primaryStage) throws Exception {
    // path to the file
    final URL resource = getClass().getResource("/music/audio.mp3");

    // create Media Object and pass it the path of the audio file
    Media mediafile = new Media(resource.toString());

    // create MediaPlayer Object and pass the mediafile instance to it
    MediaPlayer player = new MediaPlayer(mediafile);

    // Add a mediaView, to display the media. Its necessary !
    // This mediaView is added to a Pane
    MediaView mediaView = new MediaView(player);

    // Add to scene
    Scene scene = new Scene(new Pane(mediaView), 400, 200);

    // Show the stage
    primaryStage.setTitle("Media Player");
    primaryStage.setScene(scene);
    primaryStage.show();

    // Play the media once the stage is shown
    player.play();

  } // end start
} // end Main Class

Um JavaFX zu verwenden, benötigen wir eine primäre Startklasse, die die Klasse Application (eine Standardklasse in Java seit Java 8) erweitern muss. Der Name der primären Startklasse ist Main, was auch die Klasse Application erweitert.

Wir können sagen, dass die Klasse Main die Unterklasse der Klasse Application ist. Es muss also alle abstrakten Methoden implementieren, weshalb die Klasse Main die Methode start() überschreibt.

Die Funktion start() akzeptiert einen Parameter vom Typ Stage. Hier werden alle visuellen Bereiche der JavaFX-App angezeigt.

Das Objekt vom Typ Stage wird für uns von der JavaFX-Laufzeit erstellt. Wir müssen das nicht manuell erstellen.

Innerhalb der start()-Methode erhalten wir den Pfad einer Audiodatei und speichern ihn in der resource-Variable, die in einem String-Format an den Media-Konstruktor und weiter an den MediaPlayer-Konstruktor übergeben wird . Als nächstes fügen wir eine mediaView hinzu, um die Medien zu präsentieren/anzuzeigen, und es ist notwendig.

Dann wird diese mediaView zum Pane hinzugefügt. Wir müssen die Scene zu einem Stage-Objekt hinzufügen, das verwendet wird, um etwas im Fenster der JavaFX-Anwendung anzuzeigen.

Denken Sie daran, dass sich alle Komponenten, die in der JavaFX-App angezeigt werden müssen, innerhalb der Scene befinden müssen. In diesem Beispiel fügen wir zusammen mit der Medienansicht ein Scene-Objekt zu einer Stage hinzu.

Danach legen wir den Titel fest, legen die Szene fest und spielen die Medien ab, sobald die Bühne gezeigt wird.

Kommen wir nun zur main-Methode. Wissen Sie, dass wir die JavaFX-App ohne die Funktion main() starten können, aber nützlich, wenn wir die Befehlszeilenparameter an eine Anwendung übergeben müssen.

Richten Sie JavaFX ein und verwenden Sie es, um einen Media Player zu erstellen

Um JavaFX manuell zu installieren, benötigen wir die folgenden Dinge.

  • Java 18
  • NetBeans Version 13 (Sie können jede IDE Ihrer Wahl verwenden)
  • Aktualisieren Sie die Dateien module-info.java und pom.xml, um javafx.controls und javafx.media zu installieren (vollständiger Code für jede Datei ist unten angegeben)
  • Wir verwenden Maven, um Abhängigkeiten zu installieren. Sie können Gradle verwenden.

Beispielcode (Datei module-info.java):

module com.mycompany.test {
  requires javafx.controls;
  requires javafx.media;
  exports com.mycompany.test;
}

Beispielcode (pom.xml-Datei):

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>Test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.release>11</maven.compiler.release>
        <javafx.version>16</javafx.version>
        <javafx.maven.plugin.version>0.0.6</javafx.maven.plugin.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>${javafx.version}</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-media</artifactId>
            <version>${javafx.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <release>${maven.compiler.release}</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>${javafx.maven.plugin.version}</version>
                <configuration>
                    <mainClass>com.mycompany.test.App</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Beispielcode (App.java, die Hauptklasse):

// write the package name (yours may be different)
package com.mycompany.test;

// import necessary libraries
import java.net.URL;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;

/**
 * JavaFX App
 */
public class App extends Application {
  /**
   *
   * @param primaryStage
   */
  @Override
  public void start(Stage primaryStage) {
    // path to the file
    final URL resource = getClass().getResource("/music/video.mkv");

    // create Media Object and pass it the path of the video/audio file
    Media mediafile = new Media(resource.toString());

    // create MediaPlayer Object and pass the mediafile instance to it
    MediaPlayer player = new MediaPlayer(mediafile);

    // Add a mediaView, to display the media. Its necessary !
    // This mediaView is added to a Pane
    MediaView mediaView = new MediaView(player);

    // Add to scene
    Scene scene = new Scene(new Pane(mediaView), 1080, 750);

    // Show the stage
    primaryStage.setTitle("Media Player");
    primaryStage.setScene(scene);
    primaryStage.show();

    // Play the media once the stage is shown
    player.play();
  }

  // main method
  public static void main(String[] args) {
    launch(args);
  } // end main method

} // end App class

In einer Java-Anwendung befinden sich die Dateien module-info.java und pom.xml im Standardpaket und den Projektdateien. Es folgt ein Screenshot aller Dateien in einer Java-Anwendung, um ein klares Verständnis zu haben.

javafx media player - Projektdateien

Dieser Code ist derselbe wie im vorherigen Abschnitt, mit dem Unterschied, dass wir Installieren Sie JavaFX manuell und spielen Sie eine Videodatei ab.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - Java JavaFX