我正在为游戏编写代码,并且正在尝试加载声音。我希望背景音乐立即开始播放 - 所以我写了这段代码:
//load the sounds
sPool = new SoundPool(3, AudioManager.STREAM_MUSIC,0);
explosionID = sPool.load(context, R.raw.explosion, 1);
swapID = sPool.load(context, R.raw.swap,1);
sPool.setOnLoadCompleteListener(new OnLoadCompleteListener()
{
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId, int status)
{
//start playing the background music
sPool.play(backgroundMusicID, 0.5f, 0.5f, 3, 1, 1f);
}
});
backgroundMusicID = sPool.load(context, R.raw.alchemists_tower,1);
其他声音正在加载并正常工作,但背景音乐似乎从未开始。我在侦听器中设置了一个断点,它似乎永远不会触发。该文件本身大约为 0.5 mb(“explosion”为 250 kb,它工作得很好)。backgroundmusic 也被赋予了正确的 id(用调试器检查过)。
它似乎正在触发的唯一时间是在卸载活动之后(当我加载另一个活动时)。我究竟做错了什么?