我正在尝试为我的应用程序播放背景声音,我使用SoundPool类,我的问题是,仅当将循环参数设置为零时,声音才能很好地播放,但不适用于任何其他值。

我的初始化代码是:

    soundpool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
    soundsMap = new HashMap<Integer, Integer>();
    soundsMap.put(1, soundpool.load(this, R.raw.soundfile_1, 1));
    soundsMap.put(2, soundpool.load(this, R.raw.soundfile_2, 1));

我玩的代码是
 soundpool.play(1,  0.9f, 0.9f, 1, -1, 1f);

正如我提到的那样,当我将(0)而不是(-1)作为循环值时声音有效,任何人都知道为什么(-1)或除(0)以外的任何其他值都不起作用(没有输出声音) ?

最佳答案

文件大小可能太大,无法循环播放,已在此处报告:http://www.talkandroid.com/android-forums/android-development-answers-tutorials-code-snippets/5132-soundpool-setloop-possible-bug.html

通常,对于SoundPool来说,文件大小似乎很大,因此也许应该将声音片段切成较小的片段和/或使用的MediaPlayer。

关于java - 三星Galaxy S3的SoundPool重复问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12338992/

10-10 00:46