我正在尝试使用libgdx简单地加载音乐资源,这就是我所拥有的:
Music main_background;
main_background = Gdx.audio.newMusic(Gdx.files.internal("data/music/main_bg.wav"));
这段代码与他们在libgdx的“制作游戏”的小教程中的代码完全相同,我正在尝试加载我自己的声音(使用GarageBand,以防万一)。每当我尝试将其作为桌面应用程序运行时,我都会遇到一堆错误:
线程“LWJGL Application”中的异常com.badlogic.gdx.utils.GdxRuntimeException:创建音乐时出错com.badlogic.gdx.backends.openal.Wav $文件音乐:data / music / main_bg.wav
引起:java.lang.reflect.InvocationTargetException
引起:com.badlogic.gdx.utils.GdxRuntimeException:读取WAV文件时出错:data / music / main_bg.wav
引起:com.badlogic.gdx.utils.GdxRuntimeException:找不到RIFF标题:data / music / main_bg.wav
我不确定问题是什么,因为音频文件没有损坏(因为我可以完全听它)但我无法在任何地方找到有关人们在加载时遇到此类错误的信息资产。
我有一堆纹理加载得很好,但由于一些未知的原因我无法加载音乐资产(为了记录,我尝试加载相同的文件作为声音资产,并获得基本相同的错误)。
有没有人遇到过这个问题,或者对可能出现的问题有任何想法?
编辑:我应该提一下,如果我尝试加载mp3或ogg文件,我也会收到此错误,它不会发生在wav上
答案 0 :(得分:4)
首先,了解libGdx中Sound和Music之间的区别。
阅读本文:https://code.google.com/p/libgdx/wiki/Audio
问题可能在于比特率。
我遇到了这个问题,我将wav文件的比特率改为705kbps并且有效。
答案 1 :(得分:0)
您可以将其转换为.ogg
,占用的空间更少。并将其保存在您的数据文件夹中。
然后声明一个名为music
的变量:
Music music;
之后使用create
方法:
music = Gdx.audio.newMusic(Gdx.files.internal("data/whoo.ogg"));
然后在游戏的任何地方使用它 - 在render
,touchUp
touchDown
的任何地方,您想要音乐:
music.play();
答案 2 :(得分:0)
我有同样的问题。通过重新启动Eclipse解决了这个问题。似乎有些SDK文件还没有完全安装,重启Eclipse允许他们完成安装。