我正在做一个简单的游戏,由于我需要一些短的音效,所以我认为Soundpool是合适的。但这不起作用!我没有声音!我一遍又一遍地检查了我的代码,并将其与其他几个示例进行了比较,但仍然无法正常工作!我很困惑,需要一些帮助才能正常工作。

这是我的代码。我错过了什么吗,还是可以用其他方式做呢?希望能有所帮助!谢谢!

soundPool = new SoundPool(4,AudioManager.STREAM_MUSIC, 0);
soundPoolMap = new HashMap<Integer, Integer>();

soundPoolMap.put(0, soundPool.load(this, R.raw.bonk2, 1));
soundPool.play(0, 1f, 1f, 1, 0, 1f);

soundPool.release();

最佳答案

在您的情况下,您提到的任何声音ID为0,而应该使用load()方法提及加载的声音的声音ID。

例如:

 soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
 soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
        @Override
        public void onLoadComplete(SoundPool soundPool, int sampleId,
                  int status) {
           loaded = true;
       }
 });
 soundID = soundPool.load(this, R.raw.sound1, 1);
 soundPool.play(soundID, volume, volume, 1, 0, 1f);


检查以下示例:Tutorial: Play sounds via SoundPool

关于android - 声音池不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15827970/

10-10 09:25