Java - Lire les fichiers vidéo et audio (mp4, mp3, ...) avec vlcj
Requis: - Téléchargez VLC (download VLC media player) - Installez vlc 32 bits pour la machine virtuelle 32 bits ou 64 bits pour la machine virtuelle JVM 64 bits
Un lecteur multimédia que l'on a fait 100% en Java
Vous pouvez utiliser la librairie JMF, mais il semble qu'elle est dépassée et ancienne, donc les développeurs ont commencé à développer à partir de la fameuse librairie VLC de C++ une librairie nommée vlcj (le j pour java). On va vous montrer un exemple rapide sur l'utilisation de cette merveilleuse librairie. Il suffit juste de copier puis coller le code situé dans l'exemple ci-dessous dans votre IDE préférable: Elipse ou Netbeans. Noté que vous devez télécharger la librairie vlcj et l'intégrer dans votre projet et dans votre classpath.
L'objectif est d'assurer que vous avez un environnement qui marche. Cette étape est critique dans le codage de n'importe quelle application qui utilise vlcj. Si cette simple application ne marche pas alors tout le reste des applications que avez codé en java et qui intègrent vlcj ne vont pas marcher.
Chercher la librairie native
Le chemin de la librairie native doit pointer vers le dossier qui contient les deux fichiers libvlc.dllet libvlccore.dll. Dans linux les fichiers sont nommés libvlc.so et libvlccore.so. Ces deux fichiers dll sont dans le dossier de VLC, si vous ne les trouvez pas, téléchargez et ajoutez les dans le dossier où VLC a été installé.
Une erreur commise est que la machine virtuelle Java est utilisée avec une version 32-bit de VLC. Ca ne va pas marcher tout simplement parce que vous devez utiliser la version VLC 64-bit avec JDK 64-bit et la version VLC 32-bit avec JDK 32-bit.
Charger la librarie native
L'API vlcj utilise JNA qui relie VLC à la librarie. ça veut dire que l’environnement doit être bien configuré pour que l'application Java serait capable de localiser la libraire native. Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
MediaPlayerFactory: initialise une seule instance de libvlc et crée les instances du lecteur multimédia. On peut créer plusieurs panneaux pour chaque vidéo par exemple.
EmbeddedMediaPlayer: intègre un composant du lecteur multimédia dans un composant interface utilisateur. C'est avec cette classe quand peut contrôler tout ce qui a une relation avec l'interface utilisateur comme préparer ou commencer la lecture, plein écran, etc.
//Créer une instance de Canvas Canvas c = new Canvas(); //L'arrière plan de la vidéo est noir par défaut c.setBackground(Color.black); JPanel p = new JPanel(); p.setLayout(new BorderLayout()); //La vidéo prend toute la surface p.add(c, BorderLayout.CENTER); frame.add(p, BorderLayout.CENTER);
//Créer une instance factory MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(); //Créer une instance lecteur média EmbeddedMediaPlayer mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(frame)); mediaPlayer.setVideoSurface(mediaPlayerFactory.newVideoSurface(c)); //Plein écran mediaPlayer.toggleFullScreen(); //Cacher le curseur de la souris à l'intérieur de JFrame mediaPlayer.setEnableMouseInputHandling(false); //Désactiver le clavier à l'intérieur de JFrame mediaPlayer.setEnableKeyInputHandling(true);
//Préparer le fichier mediaPlayer.prepareMedia("vidéo.mp4"); //lire le fichier mediaPlayer.play(); } }
Voila! En quelques lignes de code, vous pouvez maintenant avoir votre propre lecteur média. Commencez à explorer la documentation vlcj en ligne pour développer votre propre application selon vos besoins.
Advertisement
AdBlock Detected
Please disable your ad blocker and refresh the window to use this website.