JavaFX Mediaplayer
- Verwenden von integriertem JavaFX zur Erstellung eine Media Player
- Richten Sie JavaFX ein und verwenden Sie es, um einen Media Player zu erstellen
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
undpom.xml
, umjavafx.controls
undjavafx.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.
Dieser Code ist derselbe wie im vorherigen Abschnitt, mit dem Unterschied, dass wir Installieren Sie JavaFX manuell und spielen Sie eine Videodatei ab.