Java 流媒体资源(Slick2D)

Java 流媒体资源(Slick2D),java,loading,inputstream,slick2d,Java,Loading,Inputstream,Slick2d,我正在用Slick2D库写一个游戏。我最近添加了一个使用延迟加载的加载屏幕。我使用Music类加载要用作音乐的OGG文件。加载这些文件需要过多的时间。我在维基上查看了更多关于延迟加载的信息。我发现: 加载任何一个资源都不应花费如此长的时间,以致于在相当长的一段时间内无法刷新屏幕(如果是这样,那么该资源可能无论如何都应该被流式传输:) 因此,我改变了我的菜单类如下(这只是一个例子,我省略了很多): 音乐数组是org.newdawn.slick.music的数组 所以我想我已经做了什么可以减少加载时

我正在用Slick2D库写一个游戏。我最近添加了一个使用延迟加载的加载屏幕。我使用Music类加载要用作音乐的OGG文件。加载这些文件需要过多的时间。我在维基上查看了更多关于延迟加载的信息。我发现:

加载任何一个资源都不应花费如此长的时间,以致于在相当长的一段时间内无法刷新屏幕(如果是这样,那么该资源可能无论如何都应该被流式传输:)

因此,我改变了我的菜单类如下(这只是一个例子,我省略了很多):

音乐数组是org.newdawn.slick.music的数组

所以我想我已经做了什么可以减少加载时间。然而,当加载时,它花费了同样长的时间,但是它没有显示文件作为当前资源,而是显示了流

我想知道如何执行以下一项或两项操作:

  • 如wiki所建议的那样,流化资源以减少加载时间
  • 仅加载选定资源,在更改状态时加载更多资源(仅在进入游戏状态时加载游戏音乐,等等)

  • 我偶然发现了答案

    public void init(GameContainer gc, StateBasedGame game) throws SlickException{
        try{
            theme[0] = new Music("path/to/theme1.ogg",true);
        }catch (Exception e){
            e.printStackTrace;
        }
    }
    

    在文件引用之后添加
    true
    表示您想要流式播放音频。

    我无意中找到了答案

    public void init(GameContainer gc, StateBasedGame game) throws SlickException{
        try{
            theme[0] = new Music("path/to/theme1.ogg",true);
        }catch (Exception e){
            e.printStackTrace;
        }
    }
    
    在文件引用之后添加
    true
    ,表示您想要流式播放音频