首页  编辑  

Android 如何知道SoundPool加载完成

Tags: /Android/   Date Created:
使用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.crane, 1);