2015-04-02 3 views
0

У меня есть этот код:Не удается загрузить библиотеки libvlc

public class MediaPanel { 

     public static void main(final String[] args) { 
      SwingUtilities.invokeLater(new Runnable() { 
       @Override 
       public void run() { 
        chargerLibrairie(); 
        new MediaPanel(args); 
       } 
      }); 
     } 
     static void chargerLibrairie(){ String ruta="C:/VideoLAN/VLC"; 
      NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), ruta); 
      Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class); 

      LibXUtil.initialise(); 

     } 

     private MediaPanel(String[] args) { 
      JFrame frame = new JFrame("Tutoriel vlcj"); 
      frame.setLocation(100, 100); 
      frame.setSize(1050, 600); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.setVisible(true); 

      //Créer une instance de Canvas 
      Canvas c = new Canvas(); 
      //L'arrière plan de la vidéo est noir par défaut 
      c.setBackground(Color.black); 
      JPanel p = new JPanel(); 
      p.setLayout(new BorderLayout()); 
      //La vidéo prend toute la surface 
      p.add(c, BorderLayout.CENTER); 
      frame.add(p, BorderLayout.CENTER); 

      //Créer une instance factory 
      MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(); 
      //Créer une instance lecteur média 
      EmbeddedMediaPlayer mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer(); 
      mediaPlayer.setVideoSurface(mediaPlayerFactory.newVideoSurface(c)); 
      //Plein écran 
      mediaPlayer.toggleFullScreen(); 
      //Cacher le curseur de la souris à l'intérieur de JFrame 
      mediaPlayer.setEnableMouseInputHandling(false); 
      //Désactiver le clavier à l'intérieur de JFrame 
      mediaPlayer.setEnableKeyInputHandling(true); 

      //Préparer le fichier 
      mediaPlayer.prepareMedia("J.mp4"); 
      //lire le fichier 
      mediaPlayer.play(); 
     } 
    } 

И у меня есть эта ошибка:

run: 
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Unable to load library 'libvlc': Native library (win32-x86-64/libvlc.dll) not found in resource path ([file:/C:/Users/Jes%c3%bas/Desktop/videoProyecto/jna-4.0.0.jar, file:/C:/Users/Jes%c3%bas/Desktop/videoProyecto/jna-platform-4.0.0.jar, file:/C:/Users/Jes%c3%bas/Desktop/videoProyecto/vlcj-2.4.0.jar, file:/C:/Users/Jes%c3%bas/Documents/NetBeansProjects/edicionVideo/build/classes/]) 

кажется, что каталог является правильным, но я думаю, что это не загружает библиотеки из vlc. Я гарантировал, что библиотеки имеют ту же архитектуру, что и мой компьютер, 64 бита, и я действительно не знаю, в чем проблема.

+0

Возможно, это поможет: http://stackoverflow.com/questions/8608117/vlcj-unable-to-load-library-libvlc-in-64bit-os?rq=1 – LisaMM

+1

Я уже смотрю эту ссылку, но это не помогло мне. спасибо где-нибудь –

+2

Несколько комментариев ... 1. Не используйте LibX11.initialise() для Windows. 2. Ваш экземпляр mediaPlayer выйдет из области действия и будет собрано мусор в произвольное время после выхода вашего конструктора, вы должны сохранить ссылку. 3. Почему вы используете древний vlcj 2.4.0? Используйте новую версию. 4. Вы * 100% уверены *, что ваша JVM и ваша установка VLC являются одинаковой архитектурой процессора (32 бит против 64 бит). – caprica

ответ

0

Иногда проблема связана с несовместимостью архитектуры VLC и JRE.

Вы можете проверить JRE архитектуру, используя код ниже:

public class JavaApplication12 { 
    public static void main(String[] args) { 
     System.out.println(System.getProperty("sun.arch.data.model")); 
    } 
} 

Если VLC является 32bit, то JRE должно быть 32 бит слишком, и если КПД составляет 64, то JRE должна быть 64 тоже.

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