1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
//classe media
package lecteur_media;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Panel;
import java.io.IOException;
//Packages d'extension Java.
import javax.media.ControllerAdapter;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Media extends JFrame
{
// Lecteur de médias Java.
private Player lecteur;
// Composant de contenu visuel.
private Component mediaVisuel;
private JPanel panTmp;
// Constructeur de LecteurSimple.
public Media()
{
panTmp= new JPanel();
creerLecteur( "file:F:/deitel/ch22/FIG22_01/bailey.mpg" );//adresse du fichier attention pas oublier file
// Enclencher le mode de rendu allégé des lecteurs pour une
// meilleure compatibilité avec les composants GUI allégés.
Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, Boolean.TRUE );/**************renseigne toi*/
} // fin du constructeur Media
// Créer un lecteur en utilisant l'emplacement du média.
public void creerLecteur( String emplacementMedia )
{
// Réinitialiser le lecteur et la fenêtre si un lecteur existe déjà.
if ( lecteur != null )
reinitialiseComposantsLecteur();
// Emplacement de la source du média.
MediaLocator localisateurMedia = new MediaLocator( emplacementMedia );
// Crée un lecteur à partir du localisateurMedia.
try
{
lecteur = Manager.createPlayer( localisateurMedia );
// Inscrire un ControllerListener pour gérer les événements Player.
lecteur.addControllerListener(
new GestionnaireEvenementsLecteur() );
// Appeler realize pour permettre la lecture du média.
lecteur.realize();
}
// Aucun lecteur n'existe ou le format n'est pas supporté.
catch ( NoPlayerException noPlayerException )
{
JOptionPane.showMessageDialog(null,"Erreur sur la video , celle ci ne peut être lue"
,"Erreur de lecture",JOptionPane.ERROR_MESSAGE);
// noPlayerException.printStackTrace();
}
// Erreur d'entrée du fichier.
catch ( IOException ioException )
{
JOptionPane.showMessageDialog(null,"l'entrée du fichier est incorrecte"
,"Erreur de lecture",JOptionPane.ERROR_MESSAGE);
//ioException.printStackTrace();
}
} // fin de la méthode creerLecteur
// Retourner le lecteur aux ressources du système
// et réinitialiser le média et les commandes.
public void reinitialiseComposantsLecteur()
{
// Éliminer le composant vidéo précédent s'il existe.
if ( mediaVisuel != null )
panTmp.remove( mediaVisuel );
// Arrêter le lecteur et restituer les ressources allouées.
lecteur.close();
}
// Obtenir le média visuel et les commandes du lecteur.
public void getComposantsMedia()
{
// Obtenir le composant visuel du lecteur.
mediaVisuel = lecteur.getVisualComponent();
// Ajouter un composant visuel si présent.
if ( mediaVisuel != null )
panTmp.add( mediaVisuel, BorderLayout.CENTER );
} // fin de la méthode getComposantsMedia
// Gestionnaire des ControllerEvents du lecteur.
private class GestionnaireEvenementsLecteur extends ControllerAdapter
{
// Prélire le contenu multimédia une fois la réalisation complétée.
public void realizeComplete( RealizeCompleteEvent realizeDoneEvent )
{
lecteur.prefetch();
}
// Le lecteur peut commencer à lire le média une fois la prélecture faite.
public void prefetchComplete(PrefetchCompleteEvent prefetchDoneEvent )
{
getComposantsMedia();
// Assurer un canevas valide pour le cadre.
validate();
// Démarrer la lecture du média.
lecteur.start();
} // fin de la méthode prefetchComplete
} // fin de la classe interne GestionnaireEvenementsLecteur
} |
Partager