在使用SoundPool播放音频的时候,如果在初始化尚未完成就调用播放函数进行播放音乐,那么根本没有声音,不是因为没有执行,而是SoundPool 需要一定的准备时间!当然这个准备时间也很短,不会影响使用,只是程序一运行就播放会没有声音,所以不要创建完SoundPool后马上进行播放。
创建SoundPool对象后,需要缓冲一定的时间后才能播放音频,由于初始化后到播放之间的代码执行时间不好确定,设置音频延时200ms播放是比较保险的做法,200ms通常情况下对用户体验的影响不会太大。如果对音效的实时性要求很高,最好在app进入时就搞定SoundPool的音频初始化工作,使用时就不用设置延时了。