java-Libgdx:音轨循环中的滞后

java-Libgdx:音轨循环中的滞后,第1张

概述我在libgdx中的音乐循环时遇到麻烦.我知道以前有一个Simmilair主题,但这根本没有帮助.关键是,当您进入我的游戏(link)的主菜单时,雨声循环.不幸的是,每场比赛之间只有片刻的沉默,我不知道为什么-您可以下载游戏,看看我的意思.我已经在使用.ogg格式,因此在这里找到的其他主题的解决

我在libgdx中的音乐循环时遇到麻烦.我知道以前有一个Simmilair主题,但这根本没有帮助.关键是,当您进入我的游戏(link)的主菜单时,雨声循环.不幸的是,每场比赛之间只有片刻的沉默,我不知道为什么-您可以下载游戏,看看我的意思.我已经在使用.ogg格式,因此在这里找到的其他主题的解决方案并没有真正的帮助.

如果我在Audacity中循环播放此声音,则效果很好.

这是我的代码(不过,我认为这不会有所帮助):

rainSoundtrack = Gdx.audio.newMusic(Gdx.files.internal("soundtrack.ogg"));rainSoundtrack.setLooPing(true);

解决方法:

问题是libGDX处理音乐的方式.我将在GitHub issue 1654上引用badlogic帖子.

the AndroID situation is a bit more complicated and sad. On AndroID we use the system facilitIEs to playback audio, namely MediaPlayer. This pIEces of AndroID software uses device dependend drivers under the hood (audio drivers, custom codec implementations, etc.). This means that we are at the mercy of harDWare vendors like Samsung and their driver implementations.

该问题不仅限于libGDX,而是Android issue 18756.

您的音轨在内存大小方面又短又小,因此在这种情况下使用libGDX声音实际上更好,并且没有此漏洞.

音乐->长而大的文件,未加载到内存中

声音->短小文件,加载到内存中

使用Sound类并循环播放.例:

long ID;...public voID create() {    music = Gdx.audio.newSound(Gdx.files.internal("soundtrack.ogg"));    ID = music.loop(); //Sound may not be ready here!}public voID render() {    if(ID == -1)        ID = music.loop();}
总结

以上是内存溢出为你收集整理的java-Libgdx:音轨循环中的滞后全部内容,希望文章能够帮你解决java-Libgdx:音轨循环中的滞后所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1093046.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存