3

我设置了我的SoundPool,并加载了一个声音资源,如下所示onCreate()

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

然后我尝试在 a 中播放此声音两次onClick(),一次慢速,主要在左扬声器中,另一种快,主要在右扬声器中:

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

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

4

1 回答 1

17

原来SoundPool有两个错误/限制。

  1. 音量从 0.0f 到但不包括 1.0f。1.0f 和 0.0f 都是静音的,因此您必须将音量限制在 0.99f。
  2. 将不适合 ram的样本加载到SoundPoolram 中不会导致抛出异常,也不会soundId返回可以检查失败的返回值。因此,您必须查看您的日志,并向 Android 之神祈祷您的示例适合目标设备。
于 2009-09-17T10:26:58.707 回答