如何在LibGdx中平滑循环声音效果?

5
我正在使用LibGdx中的声音接口来播放mp3音频文件。当我选择使用sound.loop();循环播放声音时,它可以正常工作,但每次重复播放声音时都会有一小段静默时间。那么有没有办法消除这种静默时间或更顺畅地播放声音效果?
以下是我的代码:
Sound accelarating_sound1;
    accelarating_sound1 = Gdx.audio.newSound(Gdx.files.internal("speedUp.mp3"));
    accelarating_sound1.loop(1,f,0);        

1
只是为了确认:您的声音是否支持循环,意味着在结尾没有静默期(许多声音都有这种情况),并且结尾与开头相同,以便您听不到从结尾到开始的“跳跃”。 - Robert P
1
我遇到了完全相同的问题,只是为了澄清一下,我正在使用支持循环的.mp3文件(开头和结尾没有任何内容)。将其转换为.wav将使大小从850kb增加到近乎9mb,所以我猜这对我也不是一个选项。 - Bjarke Brask Rubeksen
只是提醒一下,我使用 ogg 文件并没有遇到这个问题(解码/开始/结束间隙)。 - ashes999
3个回答

2

MP3文件在开始时存在一些解码延迟,使用WAV文件将会导致更大的文件大小,但似乎没有这种延迟。

奇怪的是,libgdx允许您设置一个音轨是否循环,但在音轨即将结束时并不缓冲开头。

我的答案是快速修复小型音效的问题,因为我也遇到了同样的问题,只不过是一个循环的音乐片段。将其转换为WAV将占用太多空间。


0

声音应该仅用于短文件(几秒钟)。如果您的文件超过这个长度,您应该使用音乐类。


0
如果有人遇到类似的问题,我也曾经遇到过这个问题,使用 .ogg 音乐文件而不是 .mp3 可以解决它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接