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

Java Libgdx停止当前正在播放的声音并播放新声音,java,android,audio,libgdx,Java,Android,Audio,Libgdx,我在Libgdx(为Android开发)中遇到了这样一个问题,即有时不会播放声音。据我所知,这是当一个旧的声音还没有结束播放。是否有办法跟踪当前播放的声音并阻止它们播放新的声音。我也有一个循环音乐在后台运行,但这并没有导致它,因为删除它也会产生同样的声音不匹配。Am通过AssetManager加载声音。希望你们能帮上忙,thanx提前 如果您想确定当前是否播放声音,那么您不应该这样做。当然,您可以通过存储播放时的长度和时间来做到这一点,但是声音被创建为发射并忘记 您可以使用Music和just

我在Libgdx(为Android开发)中遇到了这样一个问题,即有时不会播放声音。据我所知,这是当一个旧的声音还没有结束播放。是否有办法跟踪当前播放的声音并阻止它们播放新的声音。我也有一个循环音乐在后台运行,但这并没有导致它,因为删除它也会产生同样的声音不匹配。Am通过AssetManager加载声音。希望你们能帮上忙,thanx提前

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

您可以使用
Music
和just use
isplay()
方法

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

我还建议检查libGDX github wiki中的文件大小:

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


我的观点正确吗?因为旧的声音还在播放,所以声音没有播放?“play()”应该总是创建新的实例,所以它不应该对旧的实例执行任何操作,但它可能有一个限制。我通过在没有assetmanager的情况下加载声音解决了这个问题