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

前端 未结 1 1071
梦毁少年i
梦毁少年i 2021-01-22 00:21

i have an .MP4 video placed in the \"res/media\" folder inside my project. I can easily play this video in my application from eclipse using this piece of code:

         


        
相关标签:
1条回答
  • 2021-01-22 01:02

    A Media Resource Locator (MRL) is not the same as a URL.

    The log you posted shows what VLC is trying to open. The informative part is:

    [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" is clearly not a valid filename?

    So this code is flawed:

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

    This type of thing, without the .getFile(), is usually used to load resources from the application classpath. That's not the case here though when you try and get the file name.

    You should just do something like:

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

    But that of course depends on what is the "current" directory for your application, and won't work inside a jar file.

    On the other hand, VLC can play media contained inside zip (and therefore jar) files, with an MRL that looks a little bit like what you posted. Something like:

    zip://file.jar!/res/media/video.mp4
    
    0 讨论(0)
提交回复
热议问题