Lire des diaporamas et des animations
Utilisez des exemples pour illustrer comment lire des diapositives et des animations.
[Exemple] La petite application lit d'abord les diapositives dans un tableau et les stocke, puis clique sur la souris pour modifier les diapositives et les afficher une par une.
import java.applet.*import java.awt.*;import java.awt.event.*;public class Exemple7_7 extends Applet implémente MouseListener{ final int number = 50; //Supposons qu'il y ait 50 diapositives int count = 0; ] carte = new Image[numéro]; public void init(){ addMouseListener(this); for (int i = 0; i < number; i++){ card[i] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); } } public void paint(Graphics 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; //Boucle et affichage repaint(); } public void mouseRelease(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(Mouse Event e){} public void mouseClicked(MouseEvent e){}}
[Exemple] L'applet explique comment lire des animations. Elle nécessite que les images soient lues et que l'applet soit placée dans le même répertoire. Le programme crée l'effet d'afficher des animations en affichant rapidement un groupe d'images. La petite application utilise des threads pour contrôler l'affichage des images animées une par une.
importer java.applet.*;importer java.awt.*;importer java.awt.event.*;classe publique Exemple7_8 étend les implémentations d'applet Runnable{ nombre int final = 50; nombre int = 0; new Image[numéro]; public void init(){ setSize(300, 200); pour (int i = 0; i <= nombre; i++){ //Charger des images animées pic[i - 1] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); } } public void start(){ mythread = new Thread(this); thread mythread.start(); //Démarrer l'exécution du thread} public void stop(){ mythread = null; } public void run(){ //Code d'exécution du thread while (true){ repaint(); = (count + 1) % number; //Modifier le numéro d'image affiché try{ mhythread.sleep(200); catch (InterruptedExeception e){} } } public void paint(Graphics g){ if ((pic[count] != null) g.drawImage(pic[count], 10, 10, pic[count].getwidth(this), pic[count].getHeight(this), ce); }}
jouer du son
Il existe de nombreux formats audio dans l'ancienne base du langage Java : au, aiff, wav, midi, rfm, etc. Pour lire des fichiers audio dans une applet, vous pouvez utiliser la classe AudioClip, définie dans la bibliothèque de classes java.applet.AudioClip. L'applet crée d'abord un objet AudioClip et l'initialise à l'aide de la méthode getAudioClip(). La forme du code est la suivante :
AudioClip audioClip = getAudioClip(getCodeBase(),"myAudioClipFile.au");
Si vous souhaitez obtenir un fichier audio sur Internet, vous pouvez utiliser la méthode getAudioClip(URL url, String name) pour obtenir un objet audio lisible en fonction de l'adresse URL et du nom du fichier audio.
Il existe trois méthodes pour contrôler la lecture du son : play() pour lire le son, loop() pour boucler la lecture et stop() pour arrêter la lecture.
[Exemple] Une petite application qui peut jouer des sons.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class Exemple7_9 extends Applet implémente ActionListener{ AudioClip clip; //Déclarer un objet audio Button ButtonPlay, ButtonLoop, ButtonStop public void init; (){ clip = getAudioClip(getCodeBase(), "2.wav"); //Créer un objet audio basé sur le fichier son 2.wav à l'adresse du programme, //La méthode getCodeBase() de la classe Applet permet d'obtenir l'adresse URL de la page html où se trouve l'applet. buttonPlay = new Button("Commencer à jouer"); boutonLoop = new Button("Lecture en boucle"); boutonStop = new Button("Arrêter de jouer"); boutonPlay.addActionListener(this); (this); ajouter(boutonPlay); ajouter(boutonLoop); ajouter(boutonStop); } public void stop(){ clip.stop(); //Arrêtez de jouer en quittant cette page} public void actionPerformed(ActionEvent e){ if (e.getSource() == buttonPlay){ clip.play( } else if (e.getSource() == buttonLoob){ clip .loop(); } else if (e.getSource() == boutonStop){ clip.stop();
[Exemple] Si le fichier son est volumineux ou si la vitesse du réseau est lente, cela affectera l'initialisation du mini-programme. Ce problème peut être résolu grâce à la technologie multithread. La création de l'objet audio s'effectue dans un thread de niveau inférieur, c'est-à-dire que le fichier son est chargé en arrière-plan et joué au premier plan.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class Hanoi étend les implémentations d'applet Runnable, ActionListener{ AudioClip clip; //Déclare un objet audio textField thread; , boutonLoop, boutonStop; public void init(){ thread = new Thread(this); //Créer un nouveau fil de discussion .setPriority(Thread.MIN_PRIORITY); boutonPlay = new Button("Commencer à jouer"); boutonLoop = new Button("Lecture en boucle"); boutonStop = new Button("Arrêter la lecture"); .addActionListener(this); boutonStop.addActionListener(this); boutonLoop.addActionListener(this); add(buttonLoop); add(buttonStop); add(text); } 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(){ //Créer un clip d'objet audio dans le fil thread = getAudioclip(getCodeBase(), "2.wav"); text .setText("Veuillez patienter"); if(clip ! = null){ boutonPlay.setBackground(Color.red); text.setText("Vous pouvez jouer"); } //Après avoir obtenu l'objet audio, la notification peut être lue}}