Java 为什么我的30秒声音在我的LibGDX项目中只播放4秒?

Java 为什么我的30秒声音在我的LibGDX项目中只播放4秒?,java,android,loops,audio,libgdx,Java,Android,Loops,Audio,Libgdx,我试图在我的LibGDX项目中设置背景声音。我在Asset.java文件中编写了以下代码: public static void playBackgroundsound(){ backgroundsound.loop(); } 在此之后,我进入MainMenuScreen.java文件,并在游戏开始按钮的onClick()中写下这一行: Assets.playBackgroundsound(); 声音有30秒长,只有在完全播放后才能循环播放。 问题是它在4秒后循环。 原因是什么?我

我试图在我的LibGDX项目中设置背景声音。我在
Asset.java
文件中编写了以下代码:

public static void playBackgroundsound(){
     backgroundsound.loop();
}
在此之后,我进入
MainMenuScreen.java
文件,并在游戏开始按钮的
onClick()
中写下这一行:

Assets.playBackgroundsound();
声音有30秒长,只有在完全播放后才能循环播放。 问题是它在4秒后循环。 原因是什么?我如何解决这个问题

以下是GitHub项目:
背景1.mp3的播放时间可能为30秒,而不是30秒
backgroundsound.mp3
检查您的资产文件夹


Mp3文件在开始时有一些解码延迟

您可以使用
.wav
文件代替
.mp3
以减少延迟,也可以使用
声音
效果。您应该使用小型
.mp3
文件

在我对背景声音的建议中,你应该使用
音乐
而不是
声音

根据:

声音效果是小的音频样本,通常不超过几个 秒,在特定游戏事件(如 角色跳跃或开枪

音乐是-

对于任何超过几秒钟的声音,最好 将其从磁盘流式传输,而不是完全加载到RAM中。Libgdx 提供一个音乐界面,让您可以这样做

加载和播放音乐就像声音一样简单:

Music music = Gdx.audio.newMusic(Gdx.files.internal("data/mymusic.mp3"));
music.setLooping(true);
music.play();