媒体资源定位符(MRL)与URL不同。
您发布的日志显示了VLC正在尝试打开的内容。内容丰富的部分是:
[1644d0ac] filesystem access error: cannot open file D:Desktopfile:D:Desktopapp.jar!mediavideo.mp4 (Invalid argument)
"D:Desktopfile:D:Desktopapp.jar!mediavideo.mp4"显然不是有效的文件名?
因此,此代码存在缺陷:
String url = getClass().getResource("/media/video.mp4").getFile();
这种没有.getFile()的东西通常用于从应用程序类路径加载资源。但是,当您尝试获取文件名时,情况并非如此。
您应该执行以下 *** 作:
String mrl = new File("res/media/video.mp4").getAbsolutePath();
但这当然取决于您的应用程序的“当前”目录是什么,并且不能在jar文件中运行。
另一方面,VLC 可以 播放zip(因此是jar)文件中包含的媒体,其MRL看起来与您发布的内容有点相似。就像是:
zip://file.jar!/res/media/video.mp4
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)