Vous êtes sur la page 1sur 11

Université HASSAN II MOHAMMEDIA CASABLANCA Faculté des Sciences BEN M’SIK Année universitaire 2010-2011

Atelier Java Media Framework

JMF

universitaire 2010-2011 Atelier Java Media Framework JMF Firdaousse FATTAL / Asmaa KASSED Première année Master

Firdaousse FATTAL / Asmaa KASSED Première année Master Qualité logiciel Années universitaire 2010-2011

Atelier Java Media Framework

Java Media Framework (JMF)

Atelier Java Media Framework Java Media Framework (JMF)

1. Définition JMF :

Framework Java Media Framework (JMF) 1. Définition JMF : JMF est un Framework pour le traitement

JMF est un Framework pour le traitement des multimédias dans les programmes Java. Cet API peut capturer, jouer, écouter, et transcoder des multiples formats de médias, étend la plate-forme Java, Standard Edition (Java SE) et permet un développement d'applications multimédia multiplateforme.

2. Téléchargement :

Lien de téléchargement du JMF2 :

Site officiel de Sun Microsystème qui est racheté par Oracle :

Réalisé par : Asmaa KASSED/ Firdaousse FATTAL Page 1

Atelier Java Media Framework

Ici selon votre choix : Windows, Linux ou Mac, notre cas est Windows :

votre choix : Windows, Linux ou Mac, notre cas est Windows : Réalisé par : Asmaa
votre choix : Windows, Linux ou Mac, notre cas est Windows : Réalisé par : Asmaa

Atelier Java Media Framework

3. Installation JMF :

Etapes d’installation et intégration dans Netbeans :

Installer le JMF en suivant les instructions du programme d’installation, à la fin on obtient :

du programme d’installation, à la fin on obtient : Extraire le fichier téléchargé sur le disque

Extraire le fichier téléchargé sur le disque C:/, ajouter les quatre librairies (.jar) dans votre projet (click droit Buildpath Add externals jarset donnez le chemin de votre fichier extrait.)

4. TP N° 1 : Lecteur Audio :

de votre fichier extrait.) 4. TP N° 1 : Lecteur Audio : L’e xemple représente un

L’exemple représente 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 préalable de cette API est nécessaire afin de pouvoir exécuter votre code.

IDE NetBeans 6.7.1.

Création de l’interface « Classe Player_mp3 .java» :

1. Créez 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 :

le fond, c'est que vous ressemble à l'image ci-dessous : Réalisé par : Asmaa KASSED/ Firdaousse

Atelier Java Media Framework

Classe « MP3.java » :

2. Créez une nouvelle classe et nommez-la « mp3.java », cette classe est chargée de travailler avec des fichiers MP3 sélectionnés par l’utilisateur. Le code nécessaire est :

par l’utilisateur . Le code nécessaire est : Un paquetage principal : javax.media Réalisé par :

Un paquetage principal : javax.media

. Le code nécessaire est : Un paquetage principal : javax.media Réalisé par : Asmaa KASSED/

Atelier Java Media Framework

Code :

Atelier Java Media Framework Code : package demo_mp3; import java.io.IOException; import java.net.URL; import

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");

Atelier Java Media Framework

//Constructeur public mp3() {}

/* Conmmandes du lecture */

public String STOP(){ //vérifier 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;

}

";

Atelier Java Media Framework

//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 vidéo 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();

}

Atelier Java Media Framework

/* Méthode qui affiche une fenêtre 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'arrête if(todo_ok){this.STOP();} //mediaURL est affecté à la vidéo sélectionnée 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;

Atelier Java Media Framework

Explication : Comme indiqué dans le code, ce player a les commandes de base pour jouer (PLAY) et (STOP) pour arrêter le fichier mp3, plus quelques méthodes pour animer le JSlider .

La méthode ouvrir_mp3, présentera 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, créez une instance de notre classe et ajoutez des méthodes mp3.java à leurs contrôles 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:

//arrêter un mp3

this.setTitle(monmp3.STOP());

jLabel1.setText("Arrêté");

}

 

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt)

{

// TODO add your handling code here:

//ouvrir un mp3

this.setTitle(monmp3.ouvrir_mp3());

}

Atelier Java Media Framework

5. Conclusion :

JMF fournit une architecture plug-in qu’elle permet d’être personnalisées et étendu. Il permet aussi:

La capture audio et vidéo avec un microphone et une caméra, puis l'enregistrement de ces données dans un format donné ;

Le traitement des fichiers vidéo (multiplexage, segmentation, compression) ;

la transmission et la réception de l'audio et de la vidéo en temps réel sur Internet (streaming vidéo) ou sur le réseau comme déjà mentionné ;