自由贴: 免费、免注册、免审查匿名海报板,过期彻底删除,最高64K字节(约1.6万汉字)。图片请用 路过图床, Youimg 等图床
Page up Page up 发布新内容 Previous Page Next Page

使用soundpool时发现,如果在soundpool.load后直接使用soundpool.play会出现播放不了的情况,因为soundpool.load是异步的,会立即返回,导致调用play的时候,资源可能还没加载完成,而无法正常播放出声音,简单的方法是加个sleep 如何知道SoundPool加载声音文件完成,可以开始播放? 在setOnLoadCompleteListener中处理即可。

soundPool = new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() { @Override
public void onLoadComplete(SoundPool soundPool, int i, int i1) {
soundPool.play(soundid, 1, 1, 0, -1, 1);
}
}); soundid = soundPool.load(this, R.raw.sound, 1);

PID: 349@2020-05-17 15:28:02 ~