SoundPool适用于同时播放多个短促的音乐,如游戏的音效,支持单次播放、多次播放和无限循环播放
源码
以下源码的注释对loop参数说得很明白,总结如下:
- 0表示不循环
- -1表示无限循环(注意该情况需主动调用stop()方法停止播放)
- 大于0的值具体表示重复播放的次数,总的播放次数=loop+1(第一次播放加上重复播放的次数)
SondPool源码开头中loop的相关说明
1 | * <p>Sounds can be looped by setting a non-zero loop value. A value of -1 |
play()方法的源码,其中包含对loop参数的说明
1 | /** |
单次播放
1 | soudPool.play(soundID, leftVolume, rightVolume, priority, 0, rate); |
多次播放
1 | // 重复播放1次,也就是总共播放2次 |
循环播放
1 | soudPool.play(soundID, leftVolume, rightVolume, priority, -1, rate); |