Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia
Mostrando entradas con la etiqueta Multimedia. Mostrar todas las entradas
Mostrando entradas con la etiqueta Multimedia. Mostrar todas las entradas

11/1/10

Reproductor de videos en java: La API JMF - 2da parte

JAN29

SEGUNDA PARTE
INTRODUCCION AL API DE JAVA MEDIA FRAMEWORK

En esta segunda parte se hace una pequeña introduccion al API de Java Media Framework, es aqui donde se creara una nueva clase "paneldevideo.java" la que sera encargada de manejar el API asi como de interactuar con la interfaz.
Por el momento esta clase solo consistira en crear un objeto MediaPlayer especificando la URL de un archivo de video, y su reproduccion sera automatica, los controles de reproduccion se dejaran para mas tarde.


La clase "paneldevideo.java" que se utiliza en este tutorial es:

import java.awt.Component;
import java.awt.Dimension;
import java.io.IOException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;

/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */

//la clase se extiende de un Jpanel para heredar sus atributos
public class paneldevideo extends javax.swing.JPanel{
//declarmos la variable como privada
private Player mediaPlayer;
    //como datos de entrada tenemos
    //URL la url del archivo a reproducir
    //Las dimensiones del contenedor que tendra el reproductor
    public paneldevideo(URL url, Dimension d){
        try {
            // se forzara el uso de componentes  de render ligero
            Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);
            mediaPlayer = Manager.createRealizedPlayer(url);
            //ahora se declara un Component adecuado para el uso en una GUI
            Component video = mediaPlayer.getVisualComponent();
            // añadimos al componente las dimensiones del contenedor            
            video.setSize(d);
            video.setVisible(true);
            // finalmente se añade al jPanel
            add(video);            
            // el video se reproducira automaticamnte se cree el objeto
            mediaPlayer.start();                       
            //control de excepciones            
        } catch (IOException ex) {
            Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NoPlayerException ex) {
            Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (CannotRealizeException ex) {
            Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVERE, null, ex);
        }       
    }
}

continue reading

7/1/10

Reproductor de videos en java: La Interfaz - 1ra Parte

JAN29


Cureoseando el API de Java Media Framework que me sirvio para realizar el post "Reproducir video en java", me decidi a realizar una secuencia de videotutoriales donde ire explicando paso a paso como crear un reproductor multimedia con las opciones básicas de reproducción (PLAY, STOP, MUTE, volumen, etc) y al mismo tiempo profundizando un poco mas en el lenguaje java, asi como en el API JMF.
Pero mejor vamos a lo que importa.

PRIMERA PARTE
CREANDO EL PROYECTO Y LA INTERFAZ INICIAL




El proyecto inicial
Nombre de Proyecto: reproductorjava



La interfaz inicial
Esta interfaz es un BETA, solamente trata de mostrar groso modo hacia donde se quiere llegar con el proyecto y asi tener una idea basica para poder comenzar a programar. La misma puede llegar a cambiar a medida de que se vaya avanzando con el proyecto


Que necesitamos
  • El API Java Media Framework, descargatelo de su pagina e instalalo
  • EL IDE elegido para el proyecto es Netbeans 6.0

Tambien puedes pasar por este post para familiarisarte con el codigo de JMF, tambien puedes encontrar buenos tutoriales en la pagina de SUN, pero lastimosamente estan en ingles.

continue reading

18/12/09

Reproducir video en java y netbeans con Java Media Framework

JAN29

Reproducir un video en java no es imposible menos tan complicado como parece, ademas java nos proporciona herramientas para desarrollar nuestras aplicaciones. Basta de charla y vamos a lo que interesa.

¿que necesitamos?

  • Necesitamos el API multimedia de java llamado Java Media Framework, descargate la ultima version de su pagina, instalalo y reinicia la pc.
  • Netbeans claro, sera nuestra herramienta para desarrollar la aplicacion de prueba.
  • Un archivo de video con extension MPG, segun lei, la api de java JMF es capaz de reproducir varios tipos de formatos, en mi caso solo reprodujo MPG y MP3, las causas no lo se aun.
El reproductor

El reproductor consta de una clase videopanel,java encargada de crear el objeto reproductor y de una clase reproductor,java, nuestra interfaz.

Codigo fuente

Clase videopanel.java


package videojava;
import java.awt.Component;
import java.awt.Dimension;
import java.io.IOException;
import java.net.URL;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
/**
 * @web http://jc-mouse.blogspot.com/
 * @author mouse
 */
public class videopanel extends javax.swing.JPanel {
private Player mediaPlayer;
private Component controls;        
    
    public videopanel(URL mediaURL, Dimension d){
        Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true );
         try
            {
         // crea un reproductor especificando la direccion del archivo
         mediaPlayer = Manager.createRealizedPlayer( mediaURL );         
         // optiene los componentes del video
         Component video2 = mediaPlayer.getVisualComponent();
         video2.setSize(d.width, d.height);         
         video2.setVisible(true);
         //optiene los componentes de control del reproductor
         controls = mediaPlayer.getControlPanelComponent();
         controls.setSize(d.width, 24);
         
         if ( video2 != null )            
            add( video2 ); //agrega el componente del reproductor al panel 
         
         mediaPlayer.start(); // comienza la reproduccion
      } // fin try
      catch ( NoPlayerException noPlayerException )
      {
         System.err.println( "No se encontro medio disponible, osea no se reproduce archivo" );
      } // fin catch
      catch ( CannotRealizeException cannotRealizeException )
      {
         System.err.println( "no se pudo realizar el reproductor" );
      } // fin catch
      catch ( IOException iOException )
      {
         System.err.println( "Error de lectura del archivo" );
      } // fin catch
    }
    
    public Component controles (){     
        return controls;        
    }
    
    public Component controles(Dimension d){
        controls.setSize(d);
        return controls;
    } 
}

Esta clase hace uso del API JMF y la extiende hasta un objeto, en este caso un jPanel, pasando como referencias la URL del video en cuestion, tratando de capturar los errores que se pudieran encontrar en el proceso, el codigo esta por demas comentado y creo que se entiende.

La interfaz
La interfaz del reproductor es sencilla, consta de un jpanel pantalla, lugar donde insertaremos el video, un jpanel control donde se localizara los controles del reproductor, jButton abrir y jTextfiel txturl

Las partes mas importantes del codigo son:

Este codigo debe añadirse en el objeto jButton "abrir" con el evento ActionPerformed, lo que hace es llamar a una ventana de dialogo para buscar el archivo y luego inicializar los objetos reproductor y controles

URL mediaURL = null;
videopanel mediaPanel;

private void abrirActionPerformed(java.awt.event.ActionEvent evt) {                                      
       JFileChooser fileChooser = new JFileChooser();
       int result = fileChooser.showOpenDialog(null);  
        if ( result == JFileChooser.APPROVE_OPTION ){
            try {           
                //se asigna a mediaURL el archivo de video seleccionado
                mediaURL = fileChooser.getSelectedFile().toURL();
                txturl.setText("" + mediaURL); 
                //se obtiene el tamaño del panel de video
                Dimension dp = new Dimension(pantalla.getWidth(), pantalla.getHeight());
                //se crea el reproductor pasando como parametros
                // el archivo y dimensiones
                mediaPanel = new videopanel( mediaURL ,dp );           
                pantalla.add(mediaPanel);            
                pantalla.setVisible(true);
                //se obtiene dimensiones del contenedor de los controles
                // y se pasa como parametro para crear los controles de reproduccion
                Dimension d = new Dimension(control.getWidth(),control.getHeight());
                control.add(mediaPanel.controles(d));            
                control.setVisible(true);            
            } 
            catch (IOException ex) {
                Logger.getLogger(reproductor.class.getName()).log(Level.SEVERE, null, ex);
            } 
        }
    }                



Para descargarte el proyecto de ejemplo
Click para descargar

continue reading

Post recomendado