Java 使用assetManager.load()时文件的libgdx路径;

Java 使用assetManager.load()时文件的libgdx路径;,java,android,libgdx,assets,Java,Android,Libgdx,Assets,我发现这个解决方案可以加载我的声音,但它总是写入未加载的文件。eatSound.wav位于“资源”文件夹中。我是否使用正确的路径来播放声音?我怎样才能知道什么是正确的路径 private AssetManager assetManager; public SoundManager(){ assetManager = new AssetManager(); assetManager.load("eatSound.wav",Sound.class); } publ

我发现这个解决方案可以加载我的声音,但它总是写入未加载的文件。eatSound.wav位于“资源”文件夹中。我是否使用正确的路径来播放声音?我怎样才能知道什么是正确的路径

private AssetManager assetManager;

public SoundManager(){
        assetManager = new AssetManager();
        assetManager.load("eatSound.wav",Sound.class);
}

public boolean startMusic() {
    if(assetManager.isLoaded("eatSound.wav")) {
   Sound sound= assetManager.get("eatSound.wav", Sound.class);
   sound.play();

    }else {
        System.out.println("not loaded yet");
        return false;
    }
    return true;
}
当我使用

Sound sound = new Sound(Gdx.files.internal("eatSound.wav")); 
sound.play();

我调用play方法10/20次后,它开始正常工作。因此,我决定使用assetManager。但是我不确定我的声音是否使用了正确的文件路径。

我认为问题在于加载资源可能需要一段时间…几毫秒,这取决于资源的大小、设备资源等。因此,这一行

assetManager.load("eatSound.wav",Sound.class);
可能会延迟一点,如果在初始化类后立即尝试调用startMusic方法,则很可能会遇到资源尚未完成加载。这里有一个例子

SoundManager sm = new SoundManager();
sm.startMusic();

运行此操作可能永远不会播放声音,因为您没有足够的时间让资源完全加载。我建议在高级中的其他地方初始化SoundManager类,或者在初始化和调用startMusic之间添加一个延迟。

我的声音管理器无法工作,因为我没有在渲染方法中调用assetManager.update。

这是声音对象的典型情况。试着看看这个问题,我已经在游戏屏幕中初始化了SoundManager,当我的角色与一些对象重叠时,我会使用startMusic,但每次我还没有加载。有什么方法可以改变我的声音的正确方向吗?