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

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

艾修筠
2023-03-14

我有一个.mp4视频放在“RES/Media”文件夹内的项目。我可以使用以下代码轻松地在eclipse的应用程序中播放此视频:

String url = getClass().getResource("/media/video.mp4").getFile();
url = new File(url).getPath();
showMedia(url);       //the method that plays the video

我不得不使用此代码,因为仅使用url url=getClass().getResource(“/media/video.mp4”);会使VLCJ无法使用此url访问视频。

在创建可执行JAR文件时,我在控制台中得到这些错误:

libdvdnav: Using dvdnav version 5.0.0
libdvdread: Could not open D:\Desktop\file:\D:\Desktop\app.jar!\media\video.mp4 with libdvdcss.
libdvdread: Can't open D:\Desktop\file:\D:\Desktop\app.jar!\media\video.mp4 for reading
libdvdnav: vm: failed to open/read the DVD
[1644d0ac] filesystem access error: cannot open file D:\Desktop\file:\D:\Desktop\app.jar!\media\video.mp4 (Invalid argument)
[1644d0ac] main access error: File reading failed
[1644d0ac] main access error: VLC could not open the file "D:\Desktop\file:\D:\Desktop\app.jar!\media\video.mp4" (Invalid argument).
[1645643c] main input error: open of `file:///D:/Desktop/file%3A/D%3A/Desktop/app.jar%21/media/video.mp4' failed
[1645643c] main input error: Your input can't be opened
[1645643c] main input error: VLC is unable to open the MRL 'file:///D:/Desktop/file%3A/D%3A/Desktop/app.jar%21/media/video.mp4'. Check the log for details.

有什么建议吗?

并提前表示感谢。

共有1个答案

羊渝
2023-03-14

媒体资源定位符(MRL)与URL不相同。

您发布的日志显示了VLC试图打开的内容。信息部分是:

[1644d0ac] filesystem access error: cannot open file D:\Desktop\file:\D:\Desktop\app.jar!\media\video.mp4 (Invalid argument)

“d:\desktop\file:\d:\desktop\app.jar!\media\video.mp4”显然不是有效的文件名?

String url = getClass().getResource("/media/video.mp4").getFile();

您只需做以下操作:

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

但这当然取决于应用程序的“当前”目录,在jar文件中无法工作。

另一方面,VLC可以播放包含在zip(因此也包括jar)文件中的媒体,其MRL看起来有点像您发布的内容。类似于:

zip://file.jar!/res/media/video.mp4
 类似资料:
  • 问题内容: 我在项目内的“ res / media”文件夹中放置了一个.MP4视频。我可以使用以下代码在Eclipse中轻松地在应用程序中播放此视频: 我必须使用此代码,因为仅使VLCJ无法使用此URL访问视频。 创建可执行JAR文件时,在控制台中出现以下错误: 库已成功加载,我什至可以播放JAR文件之外的任何视频。 有什么建议? 并预先感谢。 问题答案: 媒体资源定位符(MRL)与URL不同。

  • 问题内容: 我正在使用的音频文件位于以下位置:http : //www.orangefreesounds.com/loud-alarm-clock-sound/ 这是我在Eclipse IDE中的文件结构: 我的文件结构是什么样的 当我在IDE中运行该音频文件时,它的播放效果非常好,但是当 将其导出为JAR文件时,该文件却不能正常播放。我已经检查并发现音频文件 在JAR文件中。 我正在使用终端命令

  • 我是OpenGL的新手,我在谷歌上搜索过很多次,但是我找不到一种方法来在正在播放的视频上实现效果。经过一些研究,我终于找到了一个可以在GLSURFACHEVIEW上播放视频的类。我从谷歌文档中知道,我们可以在视频上应用效果。 通过阅读这篇文章,我成功地在位图上应用了效果。现在我想为我的视频这样做,所以任何帮助或指点都是非常感谢的。 下面是我用来渲染正在播放的视频的VideoSurfaceView

  • 问题内容: 我正在尝试使用Swift从服务器播放视频。 我已经导入了 MediaPlayer 框架,这是我的代码: 当我在模拟器中运行时,我只会看到一个黑匣子,但是无论从哪里尝试加载视频,都无法播放视频。 更新 这是当前代码 这段代码有趣地播放了大约2秒钟的视频,然后再次变黑! 问题答案: 更新2019,Swift 4: 在iOS 9.0中不推荐使用MPMovieControlStyle”:在AV

  • 我想玩。iPhone应用程序中的mpd文件,为此我尝试了VLC播放器,但它没有按照预期工作,播放视频花费了太多时间。我还有其他选择吗。像Android中的exoplayer这样的mpd文件。 我已经为此目的实现了VLC媒体播放器,但现在我正在寻找另一种选择。如果有人对此有任何想法,请帮助。

  • 是否可以从webview播放youtube视频,就像我从浏览器访问youtube网站时视频开始播放时一样,它在全屏播放视频。 以下是我到目前为止的代码: