2

我正在开发一个游戏,当我想加载一些声音时,我得到了这个错误“soundpool 无法加载样本(null)”(我在 logcat 中看到它并且它不会抛出任何异常)。

我用谷歌搜索但找不到任何东西。

有什么建议吗?感谢您的关注。

这是我的代码:

        SoundPool soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
        ObjSound = soundPool.load(context, R.raw.objs, 1);
4

2 回答 2

1

所以问题的根源可能是,应该按顺序丢弃:

  1. 该文件不存在。
  2. 该文件在那里,但由于某种原因它不可读。
  3. 该文件在那里,并且可以读取,但它已损坏或不是音频文件。
  4. 该文件在那里,并且是可读的,它是一个未损坏的音频文件,但 SoundPool 不喜欢它。
  5. 有时高频的音频会变坏。尝试频率较低的一种
于 2016-10-19T04:16:12.960 回答
0

问题是由于内存中的初始化和加载错误。我正在为我的所有对象执行那段代码(我有 5 个对象和 9 个相同的声音,所以 soundPool.load 重复了 45 次!)虽然这些声音的大小不高,也不应该出现内存问题。

我仍然不知道问题的根源。

但最后我通过定义 soundPool 和所有 ObjSound静态来解决这个问题,并在游戏开始时初始化并加载它们一次并在项目中使用它们

于 2016-10-19T10:40:44.507 回答