【发布时间】:2018-12-31 07:10:53
【问题描述】:
我在 on create 中创作了这样的音乐:
music_background = Gdx.audio.newMusic(Gdx.files.internal("background_music.mp3"));
music_background.setLooping(true);
没有循环播放的问题。
我也尝试不使用循环,而是注册setOnCompletionListener,但它也无法播放。当我尝试像这样重新加载文件时:music_background = Gdx.audio.newMusic(Gdx.files.internal("background_music.mp3"));
在活动中它起作用了,但只有一次。
我认为问题在于当它播放完文件时会自行处理......
如何循环播放音乐?我做错了什么?
【问题讨论】:
-
方法名是
setLooping而不是SetLoop。您也可以在音乐结束后尝试方法isLooping()和getPosition()进行调试。 -
是的,我自己在这里写的,并没有从我的代码中复制它。我尝试了 isLooping() 和 getPosition()。第一个方法是真的,第二个是0..我能用它做什么?
-
我在我的应用程序中尝试了
Music资产加载的方法。它可以正常工作并且循环正常。我还尝试使用OnCompletionListener获取isLooping()和getPosition()值以与您的值进行比较,但是当音乐再次开始时没有调用方法。可能只有在音乐停止时才会调用它,这在我的情况下从未发生过。还有一些想法: 1. 你能试试其他的 mp3 吗?可能是您当前的已损坏? 2.您的music_background字段是否声明为static? -
还有一个问题。您在哪些后端运行您的应用程序进行测试?
-
我尝试了另一个 mp3 文件,但效果不佳(循环不起作用)。您对 OnCompletionListener 是正确的,它仅在循环设置为 false 时才有效。 music_background 不是静态的。我在安卓上运行它。你能把你测试的文件给我吗?