SoudPool的构造方法的第一个参数maxStreams表示当前SoundPool最大能够同时播放多少个音频,具体可以看如下SoudPool构造方法的源码
1 | /** |
在SoudPool源码里还有如下一段对maxStreams的说明,总结为如下几点
- SoundPool能够管理同一时间内音频播放的数量
- SoundPool跟踪当前播放的音频数量,若数量超了,会按一定规则停止先前播放的音频
- 数量超过maxStreams停止播放的规则为,首先按音频的优先级,然后按音频已经播放的时长
- 限制maxStreams的数量,减小对UI交互性能的影响
1 | * <p>In addition to low-latency playback, SoundPool can also manage the number |
maxStreams大小的设置应该根据具体需求具体场景来定,先预估同一时间最多可能有多少个音频同时播放,然后将maxStreams设置为该值,太小了容易出现有的音频没播放完就被停止,设置太大浪费CPU资源,影响性能。