Reproductor multimedia JavaFX
- Utilice JavaFX integrado para crear un reproductor multimedia
- Configure JavaFX y utilícelo para crear un reproductor multimedia
En este artículo, aprenderemos a usar JavaFX para crear un reproductor multimedia en Java. Para hacer eso, usaremos el JavaFX incorporado y lo configuraremos manualmente.
Utilice JavaFX integrado para crear un reproductor multimedia
Para usar JavaFX incorporado, necesitamos tener Java 8 porque tiene JavaFX. No tenemos que instalarlo por separado.
Para esta sección, estamos utilizando las siguientes herramientas.
- Java 8
- NetBeans 13 (puede usar cualquier IDE de su elección)
Código de ejemplo (Main.java
, la clase principal):
// 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
Para usar JavaFX, requerimos una clase de inicio principal, que tiene que extender la clase Application
(una clase estándar en Java desde Java 8). El nombre de la clase de lanzamiento principal es Main
, que también extiende
la clase Application
.
Podemos decir que la clase Principal
es la subclase de la clase Application
. Por lo tanto, necesita implementar todos los métodos abstractos, razón por la cual la clase Main
anula el método start()
.
La función start()
acepta un parámetro de tipo Stage
. Es donde se muestran todas las secciones visuales de la aplicación JavaFX.
El objeto de tipo Stage
lo crea el tiempo de ejecución de JavaFX. No tenemos que crear eso manualmente.
Dentro del método start()
, obtenemos la ruta de un archivo de audio y lo guardamos en la variable resource
, que se pasa en formato de cadena al constructor Media
y luego se pasa al constructor MediaPlayer
. A continuación, agregamos un mediaView
para presentar/mostrar los medios, y es necesario.
Luego, este mediaView
se agrega al Pane
. Tenemos que añadir la Scene
a un objeto Stage
que se utilizará para mostrar algo en la ventana de la aplicación JavaFX.
Recuerde, todos los componentes que deben mostrarse en la aplicación JavaFX deben estar ubicados dentro de la Scene
. Para este ejemplo, estamos añadiendo un objeto Scene
a un Stage
junto con la vista multimedia.
Después de eso, configuramos el título, configuramos la escena y reproducimos los medios una vez que se muestra el escenario.
Ahora, llegando al método main
. ¿Sabe que podemos iniciar la aplicación JavaFX sin la función main()
pero es útil cuando necesitamos pasar los parámetros de la línea de comandos a una aplicación?
Configure JavaFX y utilícelo para crear un reproductor multimedia
Para instalar JavaFX manualmente, necesitamos tener las siguientes cosas.
- Java 18
- NetBeans versión 13 (puede usar cualquier IDE de su elección)
- Actualice los archivos
module-info.java
ypom.xml
para instalarjavafx.controls
yjavafx.media
(el código completo de cada archivo se proporciona a continuación) - Estamos usando Maven para instalar dependencias. Puedes usar Gradle.
Código de ejemplo (archivo module-info.java
):
module com.mycompany.test {
requires javafx.controls;
requires javafx.media;
exports com.mycompany.test;
}
Código de ejemplo (archivo 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>
Código de ejemplo (App.java
, la clase principal):
// 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
En una aplicación Java, los archivos module-info.java
y pom.xml
residen en el default package
y los Project Files
. A continuación se muestra la captura de pantalla de todos los archivos en una aplicación Java para tener una comprensión clara.
Este código es el mismo que el de la sección anterior, excepto que la diferencia es que nosotros instale JavaFX manualmente y reproduzca un archivo de video.