9.0版本SoundPool播放无声问题
音效没声音很多情况:
1、不支持的音效格式(ogg,MP3,wav)
2、加载未完成时调用play播放音频。表现为前面无声音,过一段时间有声音。可以实现onLoadComplete()监听等待加载完成后再去播放。
pool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
if (status == 0){
// 加载完成
}
}
});
3、调用了SoundPool.release()之后没有再初始化。
这种场景也经常出现,当我们接收手机设置铃声音量变化,静音和振动状态下需要关闭声音播放,标准状态下重新初始化,如果从静音模式切换到铃声模式忘记初始化,就会出现无声现象。
类型 | 操作 |
---|---|
静音 | relase |
震动 | relase |
标准 | init |
4、静音模式下继续播放声音,有时候导致无法结束,下一次播放为无声。
在播放音频时判断当前是否标准模式:
if (ringerMode == AudioManager.RINGER_MODE_VIBRATE) {
// 振动
} else if (ringerMode != Au