[英]Adding a video player to a JPanel in java using VLCJ
我目前正处于我想要合并的两件作品的位置。 我有一个在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无法解析或不是字段”
有谁知道我怎么能纠正这个?
我遇到了同样的问题,今天就解决了。 问题是你正在使用JPanel并且你永远无法在那里观看视频,你应该使用Canvas。 这对我有用:
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和VLCJ 2.1
如果您正在使用IDE,则只需放置一个Canvas,就像放置JPanel一样,并删除第一行。
祝好运
首先,看起来你的vidPanel
是一个局部变量,如果你需要从其他方法访问它,它应该是一个字段。 这是一个非常基本的Java - 任何初学者教程都应该涵盖这一点。 VLCJ并不是最简单的使用方法,如果你不清楚基础知识,你可能会失败。
其次,在你走得太远之前,嵌入式VLCJ播放器不适用于JPanel,只是原生的AWT Canvas - 所以你需要使用它。
首先,在我看来, vidPanel
被定义为局部变量,通过在类范围中定义(而不是在方法中)使其成为成员字段。
这不是你在一个真正的可维护代码中的做法,而是为了快速解决你的问题:在MainWindow中定义一个返回vidPanel
的getVidPanel()
函数。
然后使用以下代码而不是错误的行:
MainWindow aMainWindowInstance = new MainWindow();
aMainWindowInstance.getVidPanel().add(vidComp);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.