0

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

//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(用调试器检查过)。

它似乎正在触发的唯一时间是在卸载活动之后(当我加载另一个活动时)。我究竟做错了什么?

4

1 回答 1

0

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

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

于 2013-08-24T22:07:00.720 回答