2015-10-03 2 views
0

Я пытался работать с vlcj за последние два часа, но не могу понять, как заставить его работать. Я использовал this tutorial. Даже после написания моего кода, как в учебнике, я все еще получаю эту ошибку.Ошибка поврежденного модуля при использовании vlcj

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] ядро ​​демультиплексора мета ошибка: коррумпированный модуль: 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

Есть три разные вещи здесь.

Первый - это просто предупреждение о конфигурации API протоколов SLF4J, который теперь использует vlcj. Это просто «исправить», следуя ссылке, которую вы опубликовали.

Второй по поврежденным модулям является собственной ошибкой, сообщаемой самой VLC. Самое большее, что можно сказать здесь, это то, что VLC не смог загрузить и инициализировать эти плагины (libdash и libtaglib), но точно, почему это не удалось, это очень сложно сказать. Если вы используете 64-разрядный VLC в Windows, попробуйте 32-разрядный VLC и 32-разрядную JVM.

В-третьих, «Не удалось установить сверху ...» - это также предупреждение, о котором сообщает VLC, и в моем опыте можно игнорировать без какого-либо отрицательного эффекта.

Нет ничего действительно в vlcj здесь, что связано с любой из этих проблем.

+0

Пробовал ли вы 32-битный, это привело к тому, что проблема с поврежденным модулем исчезла? Ранее я видел подобные проблемы с 64-битным VLC в Windows. – caprica

 Смежные вопросы

  • Нет связанных вопросов^_^