Reproducir presentaciones de diapositivas y animaciones.
Utilice ejemplos para ilustrar cómo reproducir diapositivas y animaciones.
[Ejemplo] La pequeña aplicación primero lee las diapositivas en una matriz y las almacena, luego hace clic con el mouse para cambiar las diapositivas y mostrarlas una por una.
import java.applet.*import java.awt.*;import java.awt.event.*;public class Ejemplo7_7 extiende Applet implements MouseListener{ final int number = 50; //Supongamos que hay 50 diapositivas int count = 0; ] tarjeta = nueva Imagen[número]; public void init(){ addMouseListener(this for (int i = 0; i < número; i++){ tarjeta[i] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); } } public void paint(Gráficos g){ if ((card[count]) != null) g.drawImage(card[count], 10 , 10, card[count].getWidth(this),card[count].getHeitht(this), this } public void); mousePressed(MouseEvent e){ count = (count + 1) % number; //Recorre y muestra repaint(); } public void mouseRelease(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(Mouse Event) e){} ratón vacío públicoClicked(MouseEvent e){}}
[Ejemplo] El subprograma explica cómo reproducir animaciones. Requiere que las imágenes se reproduzcan y el subprograma se coloque en el mismo directorio. El programa crea el efecto de mostrar animaciones mostrando rápidamente un grupo de imágenes. La pequeña aplicación utiliza hilos para controlar la visualización de imágenes animadas una por una.
importar java.applet.*;importar java.awt.*;importar java.awt.event.*;la clase pública Ejemplo7_8 extiende Applet implementa Runnable{ final int number = 50; int count = 0; nueva imagen[número]; public void init(){ setSize(300, 200) for (int i = 0; i <= número; i++){ //Cargar imágenes animadas pic[i - 1] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); public void start(){ mythread = new Thread(this); thread mythread.start(); // Iniciar la ejecución del hilo} public void stop(){ mythread = null } public void run(){ // Código de ejecución del hilo while (true){ repaint(); = (count + 1) % number; //Cambiar el número de imagen mostrada try{ mhythread.sleep(200); catch (InterruptedExeception e){} } } public void paint(Graphics g){ if ((pic[count] != nulo) g.drawImage(pic[count], 10, 10, pic[count].getwidth(this), pic[count].getHeight(this), este); }}
reproducir sonido
Hay muchos formatos de audio en la antigua base del lenguaje Java: au, aiff, wav, midi, rfm, etc. Para reproducir archivos de audio en un subprograma, puede utilizar la clase AudioClip, que está definida en la biblioteca de clases java.applet.AudioClip. El subprograma primero crea un objeto AudioClip y lo inicializa usando el método getAudioClip(). El formato del código es el siguiente:
AudioClip audioClip = getAudioClip(getCodeBase(),"myAudioClipFile.au");
Si desea obtener un archivo de audio de Internet, puede utilizar el método getAudioClip(URL URL, nombre de cadena) para obtener un objeto de audio reproducible según la dirección URL y el nombre del archivo de audio.
Hay tres métodos para controlar la reproducción de sonido: play() para reproducir el sonido, loop() para repetir la reproducción y stop() para detener la reproducción.
[Ejemplo] Una pequeña aplicación que puede reproducir sonidos.
import java.applet.*;import java.awt.*;import java.awt.event.*;clase pública Ejemplo7_9 extiende Applet implementa ActionListener{ AudioClip clip //Declarar un objeto de audio Botón buttonPlay, buttonLoop, buttonStop public void init; (){ clip = getAudioClip(getCodeBase(), "2.wav"); //Crea un objeto de audio basado en el archivo de sonido 2.wav en la dirección del programa, // El método getCodeBase () de la clase Applet puede obtener la dirección URL de la página html donde se encuentra el subprograma. buttonPlay = new Button("Comenzar a reproducir"); buttonLoop = new Button("Reproducir en bucle"); buttonStop = new Button("Detener la reproducción"); (esto); agregar(botónReproducir); agregar(botónLoop); agregar(botónParar } parada nula pública(){ clip.stop(); //Detener la reproducción al salir de esta página} public void actionPerformed(ActionEvent e){ if (e.getSource() == buttonPlay){ clip.play() } else if (e.getSource() == buttonLoob){ clip .loop(); } else if (e.getSource() == buttonStop){ clip.stop();
[Ejemplo] Si el archivo de sonido es grande o la velocidad de la red es lenta, afectará la inicialización del mini programa. Esto se puede solucionar con tecnología de subprocesos múltiples. La creación del objeto de audio se completa en un hilo de nivel inferior, es decir, el archivo de sonido se carga en segundo plano y se reproduce en primer plano.
import java.applet.*;import java.awt.*;import java.awt.event.*;la clase pública Hanoi extiende los implementos del subprograma Runnable, ActionListener{ AudioClip clip //Declara un objeto de audio textField thread; , buttonLoop, buttonStop; public void init(){ thread = new Thread(this); .setPriority(Thread.MIN_PRIORITY); buttonPlay = new Button("Comenzar a reproducir"); buttonLoop = new Button("Reproducir en bucle"); .addActionListener(este); buttonStop.addActionListener(este); agregar(buttonLoop); agregar(buttonStop); agregar(texto); } public void start(){ thread.start(); public void stop(){ clip.stop() } public void actionPerformed(ActionEvent e){ if (e.getSource() == buttonPlay(){ clip.play(); } else if (e.getSource() == buttonLoop(){ clip.loop(); } else if (e.getSource() == buttonStop(){ clip.stop(); } } public void run(){ //Crear clip de objeto de audio en el hilo thread = getAudioclip(getCodeBase(), "2.wav"); text .setText("Por favor espere"); if(clip! = null){ buttonPlay.setBackground(Color.red buttonLoop.setBackground(Color.green); text.setText("Puedes reproducir"); } //Después de obtener el objeto de audio, se puede reproducir la notificación}}