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

时间:2017-06-20 15:13:53

标签: java android loops audio libgdx

我试图在我的LibGDX项目中设置后台。我在代码中写了Asset.java文件:

public static void playBackgroundsound(){
     backgroundsound.loop();
}

在此之后我进入了MainMenuScreen.java文件并在游戏的开始按钮的onClick()中写了这一行:

Assets.playBackgroundsound();

声音长达30秒,只能在完全播放后循环播放。 问题是它在4秒后循环。 它是什么原因以及如何解决这个问题?

这是GitHub项目: https://github.com/DaFaack/FlappyBibi

1 个答案:

答案 0 :(得分:1)

background1.mp3可能不是30秒 backgroundsound.mp3检查您的资产文件夹。

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

您可以使用.wav文件代替.mp3,以减少延迟Sound效果,您应该使用较小的.mp3文件。

在我对背景声音的建议中,您应该使用Music代替Sound

根据wiki

  

声音效果是小型音频样本,通常不会超过几个   秒,在特定游戏事件(如a)上播放   角色跳跃或射击枪。

音乐是 -

  

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

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

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