【问题标题】:Unable to load libraries libvlc无法加载库 libvlc
【发布时间】:2015-04-02 08:22:16
【问题描述】:

我有这个代码:

    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 加载库。我已确保这些库与我的 pc 具有相同的架构,64 位,但我真的不知道问题出在哪里。

【问题讨论】:

  • 也许这会有所帮助:stackoverflow.com/questions/8608117/…
  • 我已经看过这个链接,但它没有帮助我。感谢任何地方
  • 一些 cmets... 1. 不要在 Windows 上使用 LibX11.initialise()。 2.您的 mediaPlayer 实例将超出范围并在构造函数退出后的某个随机时间被垃圾收集,您必须保持引用固定。 3、你为什么用古vlcj 2.4.0?请使用更新的版本。 4. 您是否100% 确定您的 JVM 和您的 VLC 安装都是相同的 CPU 架构(32 位与 64 位)。

标签: java vlc libvlc vlcj


【解决方案1】:

有时问题是由于 VLC 和 JRE 的架构不兼容造成的。

您可以使用以下代码检查 JRE 架构:

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

如果 VLC 是 32 位,那么 JRE 也必须是 32 位,如果 VLC 是 64,那么 JRE 也必须是 64 位。

【讨论】:

    【解决方案2】:
    cd src/main/resources/
    cp -r /Applications/VLC.app/Contents/MacOS/lib darwin
    rm darwin/*.*.*
    cd darwin
    install_name_tool -add_rpath @loader_path libvlc.dylib
    mkdir vlc
    cp -r /Applications/VLC.app/Contents/MacOS/plugins vlc/plugins
    

    这是 macOS 版本。为我工作。或许能帮到你。

    ├── kotlin
    │   └── App.kt
    └── resources
        └── darwin
            ├── libvlc.dylib
            ├── libvlccore.dylib
            └── vlc
                └── plugins
                    ├── liba52_plugin.dylib
                    ├── libaccess_concat_plugin.dylib
                    ├── libaccess_imem_plugin.dylib
                    ├── libaccess_mms_plugin.dylib
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 2011-06-14
      相关资源
      最近更新 更多