Java - Lire les fichiers vidéo et audio (mp4, mp3, ...) avec vlcj
Erforderlich:
- VLC herunterladen (VLC Media Player herunterladen)
- Installieren Sie 32-Bit-VLC für die 32-Bit-VM oder 64-Bit für die 64-Bit-JVM-VM
Sie können die JMF-Bibliothek, aber es scheint, dass es veraltet und alt ist, also begannen die Entwickler, aus der berühmten VLC-Bibliothek von C++ eine Bibliothek namens vlcj (das j für Java) zu entwickeln.
Wir zeigen Ihnen ein kurzes Beispiel für die Verwendung dieser wunderbaren Bibliothek. Kopieren Sie einfach den Code im folgenden Beispiel und fügen Sie ihn in Ihre bevorzugte IDE ein: Elipse oder Netbeans. Beachten Sie, dass Sie download vlcj library und integrieren Sie es in Ihr Projekt und in Ihren Klassenpfad.
Ein Fehler ist, dass die Java VM mit einer 32-Bit-Version von VLC verwendet wird. Es wird nicht funktionieren, nur weil Sie die 64-Bit-VLC-Version mit 64-Bit-JDK und die 32-Bit-VLC-Version mit 32-Bit-JDK verwenden müssen.
Zwei wesentliche Klassen:
- VLC herunterladen (VLC Media Player herunterladen)
- Installieren Sie 32-Bit-VLC für die 32-Bit-VM oder 64-Bit für die 64-Bit-JVM-VM
Ein Mediaplayer, den wir zu 100% in Java erstellt haben
Sie können die JMF-Bibliothek, aber es scheint, dass es veraltet und alt ist, also begannen die Entwickler, aus der berühmten VLC-Bibliothek von C++ eine Bibliothek namens vlcj (das j für Java) zu entwickeln.
Wir zeigen Ihnen ein kurzes Beispiel für die Verwendung dieser wunderbaren Bibliothek. Kopieren Sie einfach den Code im folgenden Beispiel und fügen Sie ihn in Ihre bevorzugte IDE ein: Elipse oder Netbeans. Beachten Sie, dass Sie download vlcj library und integrieren Sie es in Ihr Projekt und in Ihren Klassenpfad.
Das Ziel ist es, sicherzustellen, dass Sie ein Arbeitsumfeld haben. Dieser Schritt ist entscheidend für die Codierung jeder Anwendung, die vlcj verwendet. Wenn diese einfache Anwendung nicht funktioniert, funktionieren alle anderen Anwendungen, die in Java codiert wurden und vlcj integrieren, nicht.
Suchen Sie nach nativer library
Der Pfad der nativen Bibliothek sollte auf den Ordner verweisen, der die beiden Dateien enthält libvlc.dll und libvlccore.dll. Unter Linux heißen die Dateien libvlc.so und libvlccore.so. Diese beiden DLL-Dateien befinden sich im VLC-Ordner, wenn Sie sie nicht finden können, laden Sie sie herunter und fügen Sie sie dem Ordner hinzu, in dem VLC wurde installiert.NativeLibrary.addSearchPath(
RuntimeUtil.getLibVlcLibraryName(), "C:/Programme/VideoLAN/VLC);
Ein Fehler ist, dass die Java VM mit einer 32-Bit-Version von VLC verwendet wird. Es wird nicht funktionieren, nur weil Sie die 64-Bit-VLC-Version mit 64-Bit-JDK und die 32-Bit-VLC-Version mit 32-Bit-JDK verwenden müssen.
Native Bibliothek laden
Die vlcj-API verwendet JNA, das VLC mit der Bibliothek verbindet. Das bedeutet, dass Die Umwelt muss Sein Gut konfiguriert so dass Java-Anwendung in der Lage wäre, die Buchhändler native.
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
void chargerLibrary(){ NativeLibrary.addSearchPath RuntimeUtil.getLibVlcLibraryName(), "C:/Programme/VideoLAN/VLC"); Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class); } |
Zwei wesentliche Klassen:
- MediaPlayerFactory: Initialisiert eine einzelne Instanz von libvlc und erstellt die Laufwerksinstanzen. Multimedia. Wir können Erstellen Sie mehrere Bedienfelder für jedes Video, zum Beispiel.
- EmbeddedMediaPlayer: Integriert eine Komponente des Media Players in eine UI-Komponente. Es ist mit dieser Klasse, wenn can control alles, was eine Beziehung zu hat Die Benutzeroberfläche wie Wiedergabe vorbereiten oder starten, Vollbild usw.
Beispiel
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.player.MediaPlayerFactory;
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
import uk.co.caprica.vlcj.player.embedded.windows.Win32FullScreenStrategy;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
import uk.co.caprica.vlcj.runtime.x.LibXUtil;
/*www.codeurjava.com*/
public class MediaPanel {
public static void main(final String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
chargerLibrary();
neues MediaPanel(args);
}
});
}
void chargerLibrary(){
NativeLibrary.addSearchPath(
RuntimeUtil.getLibVlcLibraryName(), "C:/Programme/VideoLAN/VLC");
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
LibXUtil.initialise();
}
private MediaPanel(String[] args) {
JFrame frame = new JFrame("vlcj tutorial");
frame.setLocation(100, 100);
frame.setSize(1050, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
//Erstellen einer Instanz von Canvas
Canvas c = new Canvas();
//Der Hintergrund des Videos ist standardmäßig schwarz
c.setBackground(Color.black);
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
//Video nimmt die gesamte Oberfläche ein
p.add(c, BorderLayout.CENTER);
frame.add(p, BorderLayout.CENTER);
//Erstellen einer Factory
MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
//Erstellen einer Mediaplayer-Instanz
EmbeddedMediaPlayer mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(frame));
mediaPlayer.setVideoSurface(mediaPlayerFactory.newVideoSurface(c));
//Fullscreen
mediaPlayer.toggleFullScreen();
//Mauszeiger in JFrame ausblenden
mediaPlayer.setEnableMouseInputHandling(false);
//Deaktivieren Sie die Tastatur in JFrame
mediaPlayer.setEnableKeyInputHandling(true);
//Datei vorbereiten
mediaPlayer.prepareMedia("vidéo.mp4");
//die Datei
mediaPlayer.play() abspielen;
}
}
Los geht's! Mit nur wenigen Codezeilen können Sie jetzt Ihren eigenen Mediaplayer haben. Beginnen Sie mit der Online-Erkundung der vlcj documentation um Ihre eigene App nach Bedarf zu entwickeln.