Libgdx停止播放当前正在播放的声音并播放新声音

时间:2016-04-23 17:09:09

标签: java android audio libgdx

在Libgdx(针对Android开发)中遇到这个问题,有时候不会播放声音。据我所知,这是一个旧声音还没有播放完毕的时候。有没有办法跟踪当前正在播放的声音并阻止它们播放新的声音。我有一个在后台运行的循环音乐,但这不会导致它,因为删除它也会产生相同的声音不匹配。我是通过AssetManager加载声音的。希望你们能提前帮助,而不是提前!

1 个答案:

答案 0 :(得分:0)

如果你想确定当前是否播放声音,那么你就不应该这样做。当然,您可以通过存储播放时的长度和时间来实现此目的,但Sound创建为 fire and forget

您可以使用Music并使用isPlaying()方法。

方法play()返回新声音实例的id。您可以将ID存储在数组中,然后使用stop(id)来停止所需的声音,或者只使用stop()来停止该声音的所有实例。

我还建议从libGDX github wiki:

检查文件大小
  

注意:在Android上,Sound实例的大小不能超过1mb。如果你   有一个更大的文件,使用音乐