我正在做一个简单的游戏,由于我需要一些短的音效,所以我认为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/