Libgdx停止当前正在播放的声音并播放一个新声音
问题描述:
在Libgdx(面向Android开发)中,我正面临此问题,因此有时候播放的声音无法播放。据我所知,这是当一个老的声音没有完成播放。有没有办法跟踪当前正在播放的声音,并阻止他们播放新的声音。我有一个循环的音乐在后台运行,但这并不会导致它移除它也会导致相同的声音不匹配。我通过AssetManager加载声音。希望你们能提前帮助,thanx!Libgdx停止当前正在播放的声音并播放一个新声音
答
如果您想确定声音是否正在播放,那么您不应该这样做。当然你可以通过存储长度和时间来做到这一点,但Sound
被创建为火并忘记。
您可以使用Music
和刚才使用的isPlaying()
方法。
方法play()
返回新声音实例的ID。您可以将ID存储在数组中,然后使用stop(id)
来停止所需的声音,或者仅使用stop()
来停止该声音的所有实例。
我也建议检查文件大小从libGDX GitHub的维基:
注:在Android上,一个声音实例不能大小超过1MB。如果你 有一个更大的文件,使用音乐
我是对的论点,声音不播放,因为旧的声音仍在播放? –
'play()'应该总是创建新的实例,所以它不应该对旧的实例做任何事情,但可能会有限制。 – pr0gramist
我已经通过加载没有assetmanager的声音来解决它 –