JAVA DESDE CERO

Page 84

http://www.librosgratis.org

Multimedia! Java permite cargar y visualizar archivos GIF o JPEG de imagen y AU de audio (solamente en mono, 8 bits, 8000Hz de muestreo). Para el caso del sonido, un archivo de audio se carga mediante un objeto de la clase AudioClip, mediante el método getAudioClip(URL, archivo), se ejecuta con los métodos play() o loop() y se detiene con stop(). Noten esto! Si bien dijimos que un applet no puede acceder al disco de la máquina cliente, SI puede leer archivos del server desde donde se cargó. Por lo tanto, pasándole el URL de la máquina desde donde se cargó el applet, podemos leer cualquier tipo de archivo a través de la red. La forma más segura de indicar dicho URL es mediante el método getDocumentBase(), que nos da el URL adecuado. Por ejemplo, puedo cargar y reproducir audio con sólo dos líneas: ........ AudioClip sonido = getAudioClip( getDocumentBase(), "sonido.au" ); sonido.play(); ......... Por otra parte, una foto puede cargarse mediante un objeto de clase Image mediante el método getImage(URL, archivo). Luego la mostramos en un objeto Graphics correspondiente al applet (o al área de dibujo) mediante drawImage(imagen, x, y, observador). Observador es un objeto que implementa la interface ImageObserver; los applets, por descender de Component (que implementa dicha interface) también la implementan. Típicamente, la imagen se visualiza en el método paint(...) del applet: ............. algunMetodo(...) { .......... Image imagen = getImage(getDocumentBase(), "imagen.gif"); .......... } ........... public void paint(Graphics g) { g.drawImage(imagen, xOffset, yOffset, this); } ...............

// "this" representa al applet

El problema con las imágenes es asegurarse que fue cargada antes de mostrarla. Para eso se utiliza un MediaTracker (también debería servir para los archivos de audio, pero en esta versión aún no está implementado). Mediante addImage( imagen, grupo) se agrega una imagen a la lista del MediaTracker, y hay métodos para esperar que sea cargada (como waitForAll() o waitForID(grupo)), para verificar que se haya cargado correctamente (como checkAll(), checkID(grupo), isErrorAny()...), etcétera. El siguiente applet utiliza estos conceptos para cargar una imagen y un archivo de audio y mostrarlos: // Ejemplo24.java import java.awt.*; import java.applet.*; public class Ejemplo24 extends Applet { MediaTracker String Image

supervisor; archImagen, archAudio; imagen;

Página 83


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.