Académique Documents
Professionnel Documents
Culture Documents
Atelier JMF PDF
Atelier JMF PDF
Firdaousse FATTAL / Asmaa KASSED Premire anne Master Qualit logiciel Annes universitaire 2010-2011
2. Tlchargement :
Lien de tlchargement du JMF2 : Site officiel de Sun Microsystme qui est rachet par Oracle : http://www.oracle.com/technetwork/java/javase/download-142937.html
Page 1
Ici selon votre choix : Windows, Linux ou Mac, notre cas est Windows :
Page 2
3. Installation JMF : Etapes dinstallation et intgration dans Netbeans : Installer le JMF en suivant les instructions du programme dinstallation, la fin on obtient :
Extraire le fichier tlcharg sur le disque C:/, ajouter les quatre librairies (.jar) dans votre projet (click droit Buildpath Add externals jars et donnez le chemin de votre fichier extrait.)
4. TP N 1 : Lecteur Audio :
Lexemple reprsente un simple lecteur mp3 crit en Java avec l'API Java Media Framework Le projet a Besoin : JDK 1.6 L'API JMF 2.1.1 : une extension de la JDK, donc une installation pralable de cette API est ncessaire afin de pouvoir excuter votre code. IDE NetBeans 6.7.1.
1. Crez un nouveau projet dans Netbeans et ajouter un JFrame: Player. ce JFrame ajoutez un menu, un JSlider deux JButton et une tiquette sur le fond, c'est que vous ressemble l'image ci-dessous :
Page 3
Classe MP3.java : 2. Crez une nouvelle classe et nommez-la mp3.java , cette classe est charge de travailler avec des fichiers MP3 slectionns par lutilisateur. Le code ncessaire est :
Page 4
Code :
package demo_mp3; import java.io.IOException; import java.net.URL; import javax.media.* ; import java.util.*; import javax.swing.*; //player private Player mediaPlayer; //animation private Timer tiempo ; private TimerTask task; private int speed = 1000;//vitesse private int frame=0; //controle boolean run = false; boolean todo_ok = false; //fichier URL mediaURL=null; String file=""; //autres String t=null; //Filtrer private static FileNameExtensionFilter filter = new FileNameExtensionFilter("Fichier MP3","mp3","mp3");
Page 5
//Constructeur public mp3() {} /* Conmmandes du lecture */ public String STOP(){ //vrifier qu'un fichier est selectionne if (todo_ok){ mediaPlayer.stop(); this.todo_ok=false; this.run=false; this.file=""; this.stopAnimation(); } return "Player mp3 - by KASSED & FATTAL"; } /*Lire un fichier mp3 */ public String PLAY(JSlider b){ t ="Il n'existe aucun fichier..."; if (todo_ok){ if(!run){//si play mediaPlayer.start(); this.run=true; t="En cours du lecture"; this.startAnimation(b); } } return t; }
Page 6
//pour l'animation public void startAnimation(final JSlider b) { if (todo_ok) { tiempo = new Timer(); task = new TimerTask() { public void run() { //calculer le temps de l'animation de 100% frame = (int) Math.round((mediaPlayer.getMediaTime().getSeconds() * 100)/mediaPlayer.getDuration().getSeconds()); // Lorsque les deux sont gaux signifie que la vido a atteint la fin de la reproduction if(mediaPlayer.getMediaTime().getSeconds() == mediaPlayer.getDuration().getSeconds()){ frame=100; // 100% STOP();//Arret et destruction du lecteur media } else // sinon { //mises jour du Slider b.setValue(frame); //Taux du lecture System.out.println("Temps du reproduction: " + frame + "% de 100%"); } } }; //l'animation commence tiempo.schedule(task,0,speed); } } //arreter l'animation public void stopAnimation() { tiempo.cancel(); task.cancel(); }
Page 7
/* Mthode qui affiche une fentre pour ajouter des extraits sonores "Parcourir les fichiers"*/ public String ouvrir_mp3(){ JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileFilter(filter); int result = fileChooser.showOpenDialog(null); if ( result == JFileChooser.APPROVE_OPTION ){ try { //Si vous jouez un mp3, il s'arrte if(todo_ok){this.STOP();} //mediaURL est affect la vido slectionne URL url = fileChooser.getSelectedFile().toURL(); //Placer le nom de la chanson dans la variable file this.file= fileChooser.getSelectedFile().getName(); //URL est attribu au palyer mp3 mediaPlayer = Manager.createRealizedPlayer( url ); //todo_ok est affect true this.todo_ok=true; } catch (NoPlayerException ex) { Logger.getLogger(mp3.class.getName()).log(Level.SEVERE, null, ex); } catch (CannotRealizeException ex) { Logger.getLogger(mp3.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(mp3.class.getName()).log(Level.SEVERE, null, ex); } } return "Player mp3 - " + this.file; }}
Page 8
Explication : Comme indiqu dans le code, ce player a les commandes de base pour jouer (PLAY) et (STOP) pour arrter le fichier mp3, plus quelques mthodes pour animer le JSlider . La mthode ouvrir_mp3, prsentera un de dialogue pour vous de trouver votre fichier MP3 et de jouer le tout depuis une interface graphique. Le code est bien comment. 3. Maintenant, pour mettre en uvre ce code dans l'interface, crez une instance de notre classe et ajoutez des mthodes mp3.java leurs contrles correspondants.
// Instancier la classe mp3 mp3 monmp3=new mp3(); private void PlayActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: // play jLabel1.setText(monmp3.PLAY(jSlider1)); } private void StopActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: //arrter un mp3 this.setTitle(monmp3.STOP()); jLabel1.setText("Arrt"); } private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: //ouvrir un mp3 this.setTitle(monmp3.ouvrir_mp3()); }
Page 9
5. Conclusion :
JMF fournit une architecture plug-in quelle permet dtre personnalises et tendu. Il permet aussi: La capture audio et vido avec un microphone et une camra, puis l'enregistrement de ces donnes dans un format donn ; Le traitement des fichiers vido (multiplexage, segmentation, compression) ; la transmission et la rception de l'audio et de la vido en temps rel sur Internet (streaming vido) ou sur le rseau comme dj mentionn ;
Page 10