java - java中vlcj播放视频失败

标签 java swing video media-player vlcj

我想使用 vlcj 在 JPanel 中播放视频。此 JPanel 是 JFrame 中的六个 JPanel 之一。我使用下面的代码来显示视频,但未能成功。 JPanel 不显示视频。如果有人能给我一些建议,我将不胜感激。

JPanel中的代码如下:

public class VideoPanel extends JPanel {

private EmbeddedMediaPlayerComponent mymediaPlayer;
private String vlcPath = "d:/Program Files/VideoLAN/VLC";
private String mediaPath = "d:/testvideo/test2.mov";
private EmbeddedMediaPlayer mediaPlayer;

private Canvas canvas;

public VideoPanel() {
    setLayout(new BorderLayout(0, 0));

    Canvas canvas_1 = new Canvas();
    add(canvas_1, BorderLayout.CENTER);

        NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), vlcPath);
    Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);

    MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
    CanvasVideoSurface videoSurface = mediaPlayerFactory.newVideoSurface(canvas_1);
    mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer();
    mediaPlayer.setVideoSurface(videoSurface);

    mediaPlayer.playMedia(mediaPath);  
    this.setVisible(true);
}
}

最佳答案

问题已解决。这是因为我尝试在帧设置整个面板可见之前播放视频,并且视频文件的 URL 应该在 vlcj 2.1.0 中正确设置。

我将 URL 更改为正确的格式,并将 playMedia 移动到框架类,并在框架初始化后调用它。

我发现这两个讨论非常有帮助: 1.Trying to embed vlcj media player in a WindowsCanvas inside a JPanel

  • https://github.com/caprica/vlcj/issues/29
  • 关于java - java中vlcj播放视频失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16023836/

    相关文章:

    java - 为什么我的 JPanel 没有显示在 JFrame 上?

    来自远程服务器的 php 流文件

    ios - iPad 2 静止图像捕获仅 720x960 与 AVCaptureSessionPresetPhoto

    linux - 在 Linux 上将图像嵌入视频

    java - iframe 不显示 struts 操作类中的对象

    java - slf4j 日志记录 - MDC.put 函数不打印任何内容

    java - 我的整个 Android 应用程序只有一个线程池

    java - 如何清除字符串文字池中的条目

    java - 多个 Swing Applet Action 监听器 java

    java - 线程中的异常 "AWT-EventQueue-0"java.lang.IllegalArgumentException : Comparison method violates its general contract