Java 使用assetManager.load()时文件的libgdx路径;
我发现这个解决方案可以加载我的声音,但它总是写入未加载的文件。eatSound.wav位于“资源”文件夹中。我是否使用正确的路径来播放声音?我怎样才能知道什么是正确的路径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
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,但每次我还没有加载。有什么方法可以改变我的声音的正确方向吗?