Lecteur multimédia JavaFX
- Utilisez JavaFX intégré pour créer un lecteur multimédia
- Configurez JavaFX et utilisez-le pour créer un lecteur multimédia
Dans cet article, nous allons apprendre à utiliser JavaFX pour créer un lecteur multimédia en Java. Pour ce faire, nous allons utiliser le JavaFX intégré et le configurer manuellement.
Utilisez JavaFX intégré pour créer un lecteur multimédia
Pour utiliser JavaFX intégré, nous avons besoin de Java 8 car il contient JavaFX. Nous n’avons pas à l’installer séparément.
Pour cette section, nous utilisons les outils suivants.
- Java 8
- NetBeans 13 (vous pouvez utiliser n’importe quel IDE de votre choix)
Exemple de code (Main.java
, la classe principale) :
// 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
Pour utiliser JavaFX, nous avons besoin d’une classe de lancement primaire, qui doit étendre la classe Application
(une classe standard en Java depuis Java 8). Le nom de la classe de lancement principale est Main
, qui étend
également la classe Application
.
On peut dire que la classe Main
est la sous-classe de la classe Application
. Il doit donc implémenter toutes les méthodes abstraites, c’est pourquoi la classe Main
remplace la méthode start()
.
La fonction start()
accepte un paramètre de type Stage
. C’est là que toutes les sections visuelles de l’application JavaFX sont affichées.
L’objet de type Stage
est créé pour nous par le runtime JavaFX. Nous n’avons pas à le créer manuellement.
Dans la méthode start()
, nous obtenons le chemin d’un fichier audio et l’enregistrons dans la variable resource
, qui est transmise sous forme de chaîne au constructeur Media
et est ensuite transmise au constructeur MediaPlayer
. Ensuite, on ajoute un mediaView
pour présenter/afficher les médias, et c’est nécessaire.
Ensuite, ce mediaView
est ajouté au Pane
. Nous devons ajouter la Scene
à un objet Stage
qui sera utilisé pour afficher quelque chose dans la fenêtre de l’application JavaFX.
Rappelez-vous que tous les composants qui doivent être affichés dans l’application JavaFX doivent être situés à l’intérieur de la Scene
. Dans cet exemple, nous ajoutons un objet Scene
à une Stage
avec la vue média.
Après cela, nous définissons le titre, plantons le décor et jouons le média une fois que la scène est montrée.
Venons-en maintenant à la méthode main
. Savez-vous que nous pouvons lancer l’application JavaFX sans la fonction main
mais utile lorsque nous devons passer les paramètres de la ligne de commande à une application.
Configurez JavaFX et utilisez-le pour créer un lecteur multimédia
Pour installer JavaFX manuellement, nous avons besoin des éléments suivants.
- Java 18
- NetBeans version 13 (vous pouvez utiliser n’importe quel IDE de votre choix)
- Mettez à jour les fichiers
module-info.java
etpom.xml
pour installerjavafx.controls
etjavafx.media
(le code complet pour chaque fichier est donné ci-dessous) - Nous utilisons Maven pour installer les dépendances. Vous pouvez utiliser Gradle.
Exemple de code (fichier module-info.java
) :
module com.mycompany.test {
requires javafx.controls;
requires javafx.media;
exports com.mycompany.test;
}
Exemple de code (fichier pom.xml
) :
<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>
Exemple de code (App.java
, la classe principale) :
// 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
Dans une application Java, les fichiers module-info.java
et pom.xml
résident dans le default package
et les Project Files
. Voici la capture d’écran de tous les fichiers d’une application Java pour bien comprendre.
Ce code est le même que la section précédente, sauf que la différence est que nous installez le JavaFX manuellement et lisez un fichier vidéo.