尝试在Java中使用OpenAL加载声音时出错
我在看这篇关于使用java制作游戏的教程,我也参与了将音乐导入游戏的部分。但是,当我尝试使用此类中创建的方法加载声音时:尝试在Java中使用OpenAL加载声音时出错,java,openal,Java,Openal,我在看这篇关于使用java制作游戏的教程,我也参与了将音乐导入游戏的部分。但是,当我尝试使用此类中创建的方法加载声音时: package main; import java.util.HashMap; import java.util.Map; import org.newdawn.slick.Music; import org.newdawn.slick.SlickException; import org.newdawn.slick.Sound; public class AudioP
package main;
import java.util.HashMap;
import java.util.Map;
import org.newdawn.slick.Music;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.Sound;
public class AudioPlayer {
public static Map<String, Sound> soundMap = new HashMap<String, Sound>();
public static Map<String, Music> musicMap = new HashMap<String, Music>();
public static void load(){
try {
soundMap.put("click_sound", new Sound("res/clickSound.ogg"));
musicMap.put("music", new Music("res/background_Music.ogg"));
} catch (SlickException e) {
e.printStackTrace();
}
}
public static Music getMusic(String key){
return musicMap.get(key);
}
public static Sound getSound(String key){
return soundMap.get(key);
}
}
packagemain;
导入java.util.HashMap;
导入java.util.Map;
导入org.newdawn.slick.Music;
导入org.newdawn.slick.SlickException;
导入org.newdawn.slick.Sound;
公共级音频播放器{
public static Map soundMap=new HashMap();
公共静态映射musicMap=newhashmap();
公共静空荷载(){
试一试{
soundMap.put(“单击声音”,新声音(“res/clickSound.ogg”);
musicMap.put(“音乐”)、新音乐(“res/background_music.ogg”);
}接住(滑溜){
e、 printStackTrace();
}
}
公共静态音乐getMusic(字符串键){
返回musicMap.get(键);
}
公共静态声音getSound(字符串键){
返回soundMap.get(键);
}
}
我得到一个错误,上面写着:
Exception in thread "main" java.lang.NoClassDefFoundError: com/jcraft/jorbis/Info
at org.newdawn.slick.openal.OggInputStream.<init>(OggInputStream.java:35)
at org.newdawn.slick.openal.OggDecoder.getData(OggDecoder.java:311)
at org.newdawn.slick.openal.SoundStore.getOgg(SoundStore.java:835)
at org.newdawn.slick.openal.SoundStore.getOgg(SoundStore.java:793)
at org.newdawn.slick.Sound.<init>(Sound.java:87)
at main.AudioPlayer.load(AudioPlayer.java:18)
at main.Game.<init>(Game.java:45)
at main.Game.main(Game.java:160)
Caused by: java.lang.ClassNotFoundException: com.jcraft.jorbis.Info
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 8 more
AL lib: (EE) alc_cleanup: 1 device not closed
线程“main”java.lang.NoClassDefFoundError中的异常:com/jcraft/jorbis/Info
位于org.newdawn.slick.openal.OggInputStream(OggInputStream.java:35)
位于org.newdawn.slick.openal.OggDecoder.getData(OggDecoder.java:311)
位于org.newdawn.slick.openal.SoundStore.getOgg(SoundStore.java:835)
位于org.newdawn.slick.openal.SoundStore.getOgg(SoundStore.java:793)
在org.newdawn.slick.Sound.(Sound.java:87)
加载(AudioPlayer.java:18)
在main.Game.(Game.java:45)
在main.Game.main(Game.java:160)
原因:java.lang.ClassNotFoundException:com.jcraft.jorbis.Info
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
... 8个以上
AL lib:(EE)alc_清理:1个设备未关闭
我写错什么了吗?我导入了正确的外部jar,并完成了教程中所述的所有操作。但是,我一直收到这个错误?非常感谢!它解决了我的问题:)