JavaFX un producto de Sun Microsystems/Oracle Corporation que salio a la luz para competir con tecnologías como Flash o Silverlight, tiene una amplia gama de herramientas y componentes que dejaron atrás los componentes de Java Swing en especial los correspondientes a Multimedia. Sin embargo al ser de la misma familia 🙂 pueden interactuar entre ellos y de esa forma aprovechar lo mejor de ambos mundos.
En este post aprovecharemos las herramientas de multimedia de JavaFX y las integraremos en un formulario swing para reproducir un video, algo que solo con java swing seria muy complicado.
Importante: JavaFX soporta los siguientes codec en audio y video
Si tienes problemas con estos codec para crear tus videos te recomiendo la siguiente página «Convert to H.264 Video» que te permite convertir videos online
Para saber más sobre los codecs en JavaFX ve al siguiente enlace «<<aquí papa>>»
Vamos al proyecto
Utilizaremos un video MP4 del Profesor Jirafales, lo puedes descargar del siguiente enlace (430kb)
https://mega.nz/#!tJ0EWC7B!51POvuUF25JqGDOBj_u-JynJHoKAKbo6phmh1S8ypNg
Paso 1: Crea un proyecto java Swing (nombre proyecto: Java Video)
Paso 2: Añade un JFrame y a este un JPanel, es decir:
Paso 3: Abre el JFrame en modo código
Las librerías que usaremos son las siguientes:
import java.awt.BorderLayout; import java.io.File; import javafx.application.Platform; import javafx.embed.swing.JFXPanel; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView;
Copia y pega en tu clase JFrame, como puedes ver, tenemos tanto librerías swing como fx.
Declara una variable jfxPanel que es un contenedor propio de javaFX
private final JFXPanel jfxPanel = new JFXPanel();
Ahora añadimos el panel de javaFX al panel de java Swing, en el constructor de clase, agrega el siguiente código:
//Añadimos el panel de JavaFX al JPanel Swing jPanel1.setLayout(new BorderLayout()); jPanel1.add(jfxPanel,BorderLayout.CENTER);
A continuación creamos un método que nos permite ejecutar el componente de JavaFX dentro el Swing de java
private void createScene(){ Platform.runLater(new Runnable() { @Override public void run() { File file = new File("E:\\videos\\chavodel8\\profe.mp4"); MediaPlayer oracleVid = new MediaPlayer( new Media(file.toURI().toString()) ); //se añade video al jfxPanel jfxPanel.setScene(new Scene(new Group(new MediaView(oracleVid)))); oracleVid.setVolume(0.7);//volumen oracleVid.setCycleCount(MediaPlayer.INDEFINITE);//repite video oracleVid.play();//play video } }); }
Finalmente este método createScene() lo agregamos en el constructor de clase debajo de initComponents().
Ahora todo junto:
import java.awt.BorderLayout; import java.io.File; import javafx.application.Platform; import javafx.embed.swing.JFXPanel; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.scene.media.MediaView; /** * @see https://www.jc-mouse.net/ * @author mouse */ public class JFrameVideo extends javax.swing.JFrame { private final JFXPanel jfxPanel = new JFXPanel(); /** * Creates new form JFrameVideo */ public JFrameVideo() { initComponents(); createScene(); setTitle("Java Swing Video con FX"); setResizable(false); setLocationRelativeTo(null); //Añadimos el panel de JavaFX al JPanel Swing jPanel1.setLayout(new BorderLayout()); jPanel1.add(jfxPanel,BorderLayout.CENTER); } private void createScene(){ Platform.runLater(new Runnable() { @Override public void run() { File file = new File("E:\\videos\\chavodel8\\profe.mp4"); MediaPlayer oracleVid = new MediaPlayer( new Media(file.toURI().toString()) ); //se añade video al jfxPanel jfxPanel.setScene(new Scene(new Group(new MediaView(oracleVid)))); oracleVid.setVolume(0.7);//volumen oracleVid.setCycleCount(MediaPlayer.INDEFINITE);//repite video oracleVid.play();//play video } }); }
ejecuta y listo
Enjoy!!! 🙂
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Aplicación en Java realida con el IDE de Netbeans 6.9 para trabajar con images en Base de Datos en Access 2003, el progr...
En este post veremos un ejemplo de como comprimir y descomprimir archivos con el método de compresión GZIP y el paquete...
XJC es una herramienta de linea de comandos del compilador de esquemas de JAXB que se puede utilizar para convertir un e...
¿Qué es Maven? Maven es una herramienta de software para la gestión y construcción de proyectos Java. Provee un conjunto...
En posts anteriores hablamos sobre los metadatos y el porque son importantes en la Seguridad Informática, vimos el manej...
En este post dejo el código fuente de un blog en PHP desarrollado siguiendo el patrón de diseño MVC (Modelo, Vista y Con...
Los comentarios estan cerrados
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
HOLA QUE BUEN TUTORIAL ENLACE ESTE VIDEO CON MI ARDUINO PERO TENGO UNA DUDA COMO PUEDO AGRANDAR EL VIDEO
muy buen tutorial felicitaciones sige adelante.