java 在java swing中播放avi视频文件

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16962013/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-01 00:32:03  来源:igfitidea点击:

play an avi video file in java swing

javaswingvideouser-interfaceavi

提问by jordan shedletzky

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

我需要播放 avi 视频文件并将其添加到 jpanel。我需要做的就是从头到尾播放视频,然后继续我的程序。我不需要任何搜索功能或类似的东西。这样做的最简单方法是什么?如果可能的话最好不使用 xuggler

回答by Stefan

It easy to embed the VLC player inside a swing application using VLCJ. Here is a working example:

使用VLCJ可以轻松地将 VLC 播放器嵌入到摆动应用程序中。这是一个工作示例:

 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();
      }
 }