为什么我的SoundPool静音?

时间:2009-09-08 15:36:19

标签: android audio soundpool

我设置了SoundPool,并在onCreate()中加载了声音资源:

soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
soundId = soundPool.load(this, R.raw.edible_underwear, 1);

然后我尝试在onClick()中播放两次这样的声音,一次在左扬声器中播放慢,而另一种在右扬声器播放一次:

soundPool.play(soundId, 0.9f, 0.1f, 0, -1, 0.7f);
soundPool.play(soundId, 0.1f, 0.1f, 0, -1, 1.5f);

听不到声音。我已经摆弄了数量,优先级和费率。到目前为止无济于事。我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:17)

事实证明SoundPool有两个错误/限制。

  1. 音量从0.0f到1.0f不包括在内。 1.0f和0.0f均为静音,因此您必须将音量限制为0.99f。
  2. 将样本加载到不适合ram的SoundPool中不会导致抛出异常,也不会返回可以检查失败的soundId。因此,您必须查看您的日志,并向Android神祈祷您的样本适合目标设备。