Sei sulla pagina 1di 3

Java 2d A&V

Sonido en Java
Java tambin posee mtodos predefinidos para reproducir sonido. El ordenador remoto no necesita tener
un reproductor de audio; Java realizar la reproduccin (evidentemente, el ordenador remoto, en donde
se ejecuta el applet, necesitar disponer de hardware de sonido).
Reproduccin de sonido
La forma ms fcil de reproducir sonido es a travs del mtodo play():
play( URL directorioSonido,String ficheroSonido );
o, simplemente:
play( URL unURLdeSonido );
Un URL comn para el mtodo play() es el directorio donde est el fichero HTML. Se puede acceder a
esa localizacin a travs del mtodo getDocumentBase() de la clase Applet:
play( getDocumentBase(),"sonido.au" );
para que esto funcione, el fichero de la clase y el fichero sonido.au deberan estar en el mismo directorio.
Reproduccin Repetitiva
Se puede manejar el sonido como si de imgenes se tratara. Se pueden cargar y reproducir ms tarde.
Para cargar un clip de sonido, se utiliza el mtodo getAudioClip():
AudoClip sonido;
sonido = getAudioClip( getDocumentBase(),"risas.au" );
Una vez que se carga el clip de sonido, se pueden utilizar tres mtodos:
sonido.play();
para reproducir el clip de sonido.
sonido.loop();
para iniciar la reproduccin del clip de sonido y que entre en un blucle de reproduccin, es decir, en una
repeticin automtica del clip.
sonido.stop();
para detener el clip de sonido que se encuentre en ese instante en reproduccin.
7.5 Entrada por Ratn
Una de las caractersticas ms tiles que ofrece Java es el soporte directo de la interactividad. La
aplicacin puede reaccionar a los cambios producidos en el ratn, por ejemplo, sin necesidad de escribir
ninguna lnea de cdigo para su control, solamente indicando qu se quiere hacer cuando el ratn haga
algo.
El evento ms comn en el ratn es el click. Este evento es gobernado por dos mtodos: mouseDown()
(botn pulsado) y mouseUp() (botn soltado). Ambos mtodos son parte de la clase Applet, pero se
necesita definir sus acciones asociadas, de la misma forma que se realiza con init() o con paint().

Video en java
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

Potrebbero piacerti anche