English 中文(简体)
使用 VLCJ 将视频播放器添加到 Java 的 JPPannel 中
原标题: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);

我收到错误消息 : “ VidPannel 无法解析或不是一个字段 ”

有人知道我怎样才能纠正吗?

最佳回答

首先,看来您的 vidPannel 是一个本地变量, 如果您需要从其他方法中访问它, 应该是一个字段 。 这是一个相当基本的 Java 部分 - 任何初学者的教学应该包含这个内容。 VLCJ 并不是最简单的使用方法, 如果您对基本原理不清晰, 您可能会解锁 。

第二,在你走得太远之前, 一个嵌入的 VLCJ 播放器不和JPANNEL 一起工作, 只是一个本地的 AWT 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);

Im 使用JDK 1.6和VLCJ 2.1

如果您在使用 IDE 时, 只需设置一个 Canvas 键, 和您放置 JPANEL 键一样, 然后删除第一行 。

祝你好运

首先,在我看来,vidPannel 被定义为一个本地变量,通过在类别范围中(而不是在一种方法中)加以界定,使其成为成员字段。

这不是在真正可维护的代码中如何操作,而只是为了快速解决你的问题:定义主窗口中的 getVidPanel () 函数,该函数返回 vidPanel

然后用以下文字代替错误的行:

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




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签