使用vlcj时损坏模块错误

时间:2015-10-03 20:34:21

标签: java vlcj

我一直在尝试使用vlcj最近两个小时,但我无法弄清楚如何让它工作。我一直在使用this tutorial。即使在教程中编写我的代码之后,我仍然会收到此错误

SLF4J:无法加载“org.slf4j.impl.StaticLoggerBinder”类。

SLF4J:默认为无操作(NOP)记录器实现

SLF4J:有关详细信息,请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder

[000000001a8ed480]核心流错误:损坏的模块:C:\ VideoLAN \ VLC \ plugins \ stream_filter \ libdash_plugin.dll

[000000001a8d7a30]核心demux元错误:损坏的模块:C:\ VideoLAN \ VLC \ plugins \ meta_engine \ libtaglib_plugin.dll

[000000001a8acfb0]核心vout显示错误:无法设置在顶部

这是我正在使用的代码,它与教程有点不同,因为我的程序有不同的要求。

public class AVPlayer extends JPanel{

private EmbeddedMediaPlayerComponent mediaPlayer;       
private String vlcPath, mediapath ; //iniitalized in chooseFile()

//constructor
public AVPlayer() {
    chooseFiles();
    NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), vlcPath);
    mediaPlayer = new EmbeddedMediaPlayerComponent();
    add(mediaPlayer);
    setSize(400,400);


}

// method to explicitly choose the VLC path and the video file I want to play    
private void chooseFiles(){
    JFileChooser ourFileSelector = new JFileChooser();
    File ourfile;

    //choose vlc path
    ourFileSelector.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    ourFileSelector.showSaveDialog(null);
    ourfile = ourFileSelector.getSelectedFile();
    vlcPath = ourfile.getAbsolutePath();

    //choose media path
    ourFileSelector.setFileSelectionMode(JFileChooser.FILES_ONLY);
    ourFileSelector.showSaveDialog(null);
    ourfile = ourFileSelector.getSelectedFile();
    mediapath = ourfile.getAbsolutePath();
}

//called in main to play the video
public void playVideo(){
    mediaPlayer.getMediaPlayer().playMedia(mediapath); 
  }
}

这是主要的

 public static void main(String[] args) { 
    JFrame frame = new JFrame();
    AVPlayer player = new AVPlayer();
    frame.add(player);               
    frame.setVisible(true);
    frame.validate();
    player.playVideo();
}

1 个答案:

答案 0 :(得分:1)

这里有三种不同的东西。

第一个是关于vlcj现在使用的SLF4J日志记录API配置的警告。通过关注您发布的链接,这很容易“修复”。

损坏的模块上的第二个是VLC本身报告的本机错误。这里可以说的最多的是VLC无法加载和初始化这些插件(libdash和libtaglib),但至于它失败的确切原因很难说。如果您在Windows上使用64位VLC,请尝试使用32位VLC和32位JVM。

第三个是“未能登顶......” - 这也是VLC报告的原生警告,根据我的经验可以忽略,没有任何不利影响。

这里vlcj中没有任何内容涉及任何这些问题。