2016-04-23 183 views
2

在Libgdx(面向Android开发)中,我正面临此问题,因此有时候播放的声音无法播放。据我所知,这是当一个老的声音没有完成播放。有没有办法跟踪当前正在播放的声音,并阻止他们播放新的声音。我有一个循环的音乐在后台运行,但这并不会导致它移除它也会导致相同的声音不匹配。我通过AssetManager加载声音。希望你们能提前帮助,thanx!Libgdx停止当前正在播放的声音并播放一个新声音

回答

0

如果您想确定声音是否正在播放,那么您不应该这样做。当然你可以通过存储长度和时间来做到这一点,但Sound被创建为火并忘记

您可以使用Music和刚才使用的isPlaying()方法。

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

我也建议检查文件大小从libGDX GitHub的维基:

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

+0

我是对的论点,声音不播放,因为旧的声音仍在播放? –

+0

'play()'应该总是创建新的实例,所以它不应该对旧的实例做任何事情,但可能会有限制。 – pr0gramist

+0

我已经通过加载没有assetmanager的声音来解决它 –