OnLoadCompleteListener永远不会触发

时间:2013-08-24 21:35:50

标签: java android soundpool

我正在为游戏编写代码,而我正在尝试加载声音。我希望背景音乐立即开始播放 - 所以我写了这段代码:

//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之后(当我加载另一个活动时)。我做错了什么?

1 个答案:

答案 0 :(得分:0)

好的,终于解决了。原因是AudioFlinger无法加载错误-12。

我不得不换掉使用媒体播放器播放背景音乐,因为我不知道我的内存是如何耗尽的。