我正在为游戏编写代码,而我正在尝试加载声音。我希望背景音乐立即开始播放 - 所以我写了这段代码:
//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);
其他声音正在加载并正常工作,但背景音乐似乎永远不会开始。我在监听器中放了一个断点,它似乎永远不会触发。文件本身大约半个mb('爆炸'是250 kb,它工作得很好)。 backgroundmusic也被赋予了正确的id(使用调试器检查)。
它似乎在触发的唯一时间是在卸载Activity之后(当我加载另一个活动时)。我做错了什么?
答案 0 :(得分:0)
好的,终于解决了。原因是AudioFlinger无法加载错误-12。
我不得不换掉使用媒体播放器播放背景音乐,因为我不知道我的内存是如何耗尽的。