为什么我的SoundPool静音?

Pey*_*loW 3 audio android soundpool

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

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

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

soundPool.play(soundId, 0.9f, 0.1f, 0, -1, 0.7f);
soundPool.play(soundId, 0.1f, 0.1f, 0, -1, 1.5f);
Run Code Online (Sandbox Code Playgroud)

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

Pey*_*loW 17

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

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

  • 因为如果你退一步看整个Android,那么Android就是一个不一致的混乱.很明显,每个开发人员都遵循他们自己的设计标准,如果它编译+工作,那么它就足够了. (8认同)