gpt4 book ai didi

java - 在 Eclipse 中播放视频工作正常,但是当将 java 项目导出为可运行的 JAR 文件时,它不再工作

转载 作者:行者123 更新时间:2023-12-02 09:43:01 26 4
gpt4 key购买 nike

我编写了一些在 JFrame 中播放一些 .mp4 视频的代码。我正在使用 vlcj-3.0.1 并且在 eclipse 中一切正常。但是,当我将 Java 项目导出为可运行的 JAR 文件并将 res 文件夹单独放在与 JAR 文件相同的目录中时,视频不再播放。我一定是在文件路径上做错了什么,但我不知道我做错了什么。

我已经在谷歌上查找过并发现了一个具有完全相同问题的线程:

VLCJ - playing a video from the "res" folder works great in eclipse, but not from the executable JAR file

我尝试使用 caprica 的建议,但没有成功。

    // Attributes
Canvas c = new Canvas();
MediaPlayerFactory mpf = new MediaPlayerFactory();
EmbeddedMediaPlayer emp = mpf.newEmbeddedMediaPlayer();
String mrl = new File("res/video/beach.mp4").getAbsolutePath();

// For Seeing the FilePath, so i can place the res folder correctly after
//creating the runnable jar file
System.out.println(mrl);



// Giving the Libary for VLCJ Plugin
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "lib");
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);

// Setting up the player, didnt including the jframe here, since its working
emp.setVideoSurface(mpf.newVideoSurface(c));
emp.setEnableMouseInputHandling(false);
emp.setEnableKeyInputHandling(false);
emp.prepareMedia(mrl);
emp.setRepeat(true);
emp.play();

我期望 JFrame 打开并循环播放视频。JFrame 弹出,但我只有黑屏...(我将 jframe 背景颜色设置为黑色)。

最佳答案

感谢您的回复。这正是问题所在。

就像您已经提到的,我将资源提取到一个单独的文件夹,并让可运行的 JAR 文件到达“外部”媒体。它通过另一个线程中提到的解决方案 caprica 起作用:

String mrl = new File("res/media/video.mp4").getAbsolutePath();

现在事情变得有点不同了。因为我想从保存 jar 文件的位置加载资源(因此 jar 文件会动态适应其自身和添加的资源的位置。

我添加了以下几行:

String jarDir = new File(ClassLoader.getSystemClassLoader().getResource(".").getPath()).getAbsolutePath();
String dir = jarDir;
String path = "res/video/beach.mp4"

mpf = new MediaPlayerFactory();
emp = mpf.newEmbeddedMediaPlayer();
emp.prepareMedia(dir + path);
emp.setRepeat(true);
emp.play();

关于java - 在 Eclipse 中播放视频工作正常,但是当将 java 项目导出为可运行的 JAR 文件时,它不再工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56906909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com