问题
I need to play an avi video file and add it to a jpanel. All I need to be able to do is to play from beginning to end of the video and then proceed with my program. I don't need any seek functions or anything like that. What is the simplest way of doing this? preferbly without using xuggler if possible
回答1:
It easy to embed the VLC player inside a swing application using VLCJ. Here is a working example:
public class PlayerPanel extends JPanel {
private File vlcInstallPath = new File("D:/vlc");
private EmbeddedMediaPlayer player;
public PlayerPanel() {
NativeLibrary.addSearchPath("libvlc", vlcInstallPath.getAbsolutePath());
EmbeddedMediaPlayerComponent videoCanvas = new EmbeddedMediaPlayerComponent();
this.setLayout(new BorderLayout());
this.add(videoCanvas, BorderLayout.CENTER);
this.player = videoCanvas.getMediaPlayer();
}
public void play(String media) {
player.prepareMedia(media);
player.parseMedia();
player.play();
}
}
class VideoPlayer extends JFrame {
public VideoPlayer() {
PlayerPanel player = new PlayerPanel();
this.setTitle("Swing Video Player");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new BorderLayout());
this.setSize(640, 480);
this.setLocationRelativeTo(null);
this.add(player, BorderLayout.CENTER);
this.validate();
this.setVisible(true);
player.play("http://174.132.240.162:8000/;stream.nsv");
}
public static void main(String[] args) {
new VideoPlayer();
}
}
来源:https://stackoverflow.com/questions/16962013/play-an-avi-video-file-in-java-swing