当前位置: 首页 > 知识库问答 >
问题:

在Eclipse中播放视频工作良好,但当将java项目导出为可运行的JAR文件时,它就不再工作了

蒋英博
2023-03-14

我写了一些在JFrame中播放一些.mp4视频的代码。我使用的是VLCJ-3.0.1,在eclipse内部,一切工作都很完美。但是当我将Java项目导出为一个可运行的JAR文件,并将res文件夹与JAR文件单独放在同一个目录中时,视频就不再播放了。我一定是对文件路径做错了什么,但我不知道我做错了什么。

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

VLCJ-在eclipse中从“res”文件夹播放视频效果很好,但从可执行JAR文件播放视频效果不佳

我尝试使用卡布里卡的推荐,但没有成功。

    // 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背景色设置为黑色)。

共有1个答案

邓俊材
2023-03-14

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

正如您已经提到的,我将资源提取到一个独立的文件夹中,并让可运行的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文件导出到可运行的jar文件时遇到了问题。在eclipse中,它工作得很好,但是当我导出它时,它就不工作了。 我已经尝试过(java-jar myjar.jar)获取日志,但它说“无法访问jar文件” 因为当我将它放在注释中时,当我导出时,它运行,但没有映像。 我也尝试过这样的方法:,但它也不起作用。我做错了什么?如何导出JLabel上带有图像的可运行jar文件? (这是我的JLab

  • 我已经寻找了一段时间来解决这个问题。我的工作区中有一个项目文件夹(该文件夹基本上是我的根目录),其中有一个名为icon的文件。gif。在我的项目中,我有以下几点: 当我运行图标时,它在eclipse中运行良好,但导出的jar文件并不像在eclipse中那样显示图标。知道为什么吗?我想弄明白这件事快疯了。

  • 我正试图将eclipse中的java项目导出为可运行的jar,但由于某种原因,可运行的jar无法工作。如果双击可执行jar,它什么也不做。我尝试将所需库提取并打包到生成的JAR中。 所以我也尝试导出一些更简单的项目,那些工作很好。最大的区别是我的真实项目有文件:图像和xml文件。 在代码中引用它们,如下所示:

  • 我正在尝试将我的程序导出为一个可运行的JAR。该程序在eclipse中工作得非常好,但它不能作为一个可运行的JAR运行。我正在使用另外3个jar文件作为引用jar,这样我就可以使用音频,我认为这可能是问题所在。可运行的jar启动,但它只是一个全白的窗口,程序没有启动。 我点击我的项目,然后右键点击并选择“导出”,然后我选择“可运行的JAR”选项。我尝试使用所有三个处理引用库的选项来创建jar。 将

  • 我在1-2年前用libGDX做了一个游戏,我可以在eclipse上运行它,它很有效。当我想导出jar文件时,我转到Export-Runnable jar file-这里我选择package required libraries并导出它。

  • 这是一个试用应用程序,没有什么大的,它有119行代码。我只是在摆弄java fx,试图创建一个可运行的GUI java应用程序。因此,在eclipse中,右键单击我的项目 null 在我尝试了所有这些之后,我仍然得到了错误。有人知道为什么吗?你能帮忙吗?