我正在使用SoundPool在
Android上的游戏中播放sfx声音.在大多数情况下,它完美地工作,除了有时我需要立即停止所有声音而不是暂停(如果设置为循环与否则无关紧要).
我不明白如何在不知道该声音的StreamID的情况下停止播放声音.我知道的:
我不明白如何在不知道该声音的StreamID的情况下停止播放声音.我知道的:
> soundpool.load(… some sound …)返回一个soundID
> soundpool.play(soundID)播放声音并返回streamID
> soundpool.stop(streamID)停止声音
我的问题是,如何在不知道streamID的情况下停止声音?我尝试跟踪列表中的所有streamID,但有时会有很多短流同时播放,它无法正常工作.我在SoundPoolto中找不到任何方法来获取活动的streamID.有谁知道如何停止所有声音?
任何提示都表示赞赏!谢谢
解决方法
用
.release()
怎么样?根据文件:
Release the SoundPool resources. Release all memory and native resources used by the SoundPool object. The SoundPool can no longer be used and the reference should be set to null.
我认为这也会阻止一切. (实际上它导致我的一个应用程序出现错误,这就是我说的原因)
但是,我相信如果您想稍后播放任何声音,您可能需要再次加载它们.