使用VLCJ添加一个视频播放器一个JPanel在Java(Adding a video player

2019-10-16 18:57发布

我目前在有2件作品我想结合的位置。 我有一个JFrame一个简单的媒体播放器的运行和GUI我想视频回放添加到一个JPanel。

它创建的视频播放窗口中的代码如下:

private final JFrame vidFrame;
private final EmbeddedMediaPlayerComponent vidComp;

//Creates JPanel for video player
public Video() {

    vidFrame = new JFrame("VLC video test");
    vidFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    vidFrame.setLocation(100, 100);
    vidFrame.setSize(800, 800);

    vidComp = new EmbeddedMediaPlayerComponent();

    //This is the point where I am trying to add the video player to the GUI
    MainWindow.vidPanel.add(vidComp);

    vidFrame.add(vidComp);
    vidFrame.setVisible(true);
}

这是我想给玩家添加到面板:

    JPanel vidPanel = new JPanel();
    vidPanel.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
    vidPanel.setBounds(10, 11, 532, 400);
    contentPane.add(vidPanel);

我得到的错误信息:“vidPanel不能得到解决或不是场”

有谁知道我怎么能纠正呢?

Answer 1:

首先,它看起来像你的vidPanel是一个局部变量,如果你需要从其他方法来访问它应该是一个字段。 这就是Java的一个非常基本的一块 - 任何初学者教程应涵盖这一点。 VLCJ不是用最简单的事情,你可能会脱胶,如果你不是在基本面明确。

其次,你的脑袋太远该曲目之前,嵌入式VLCJ玩家没有用的JPanel工作,只是本地AWT画布 - 所以你需要使用来代替。



Answer 2:

我有同样的问题,今天刚刚解决这个问题。 问题是你用一个JPanel,你就永远无法观看视频那里,你应该用一个帆布代替。 这是对我工作:

    Canvas canvas = new Canvas();
    MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
    CanvasVideoSurface videoSurface = mediaPlayerFactory.newVideoSurface(canvas);
    EmbeddedMediaPlayer mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer();
    mediaPlayer.setVideoSurface(videoSurface);

    mediaPlayer.playMedia(String with the name of the file);

我使用的是JDK 1.6和2.1 VLCJ

如果您使用的是IDE只需将一个帆布完全按照您放置JPanel并删除第一行。

祝好运



Answer 3:

首先,它在我看来, vidPanel由(未在方法)在类定义范围定义为一个局部变量,使其成为一个构件字段。

这是不是你在一个真正的维护的代码怎么做,只是做一个快速的解决问题的方法:定义getVidPanel()在主窗口函数返回vidPanel

然后,而不是错误路线使用以下命令:

MainWindow aMainWindowInstance = new MainWindow();
aMainWindowInstance.getVidPanel().add(vidComp);


文章来源: Adding a video player to a JPanel in java using VLCJ