1

我正在尝试为我的应用程序播放背景声音,我使用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) 以外的任何值都不起作用(没有输出声音) ?

4

1 回答 1

1

文件大小可能太大而无法循环,正如此处所报告的那样:http ://www.talkandroid.com/android-forums/android-development-answers-tutorials-code-snippets/5132-soundpool-setloop-possible-bug .html

一般来说,SoundPool 的文件大小似乎相当大,所以也许应该将声音剪辑切成更小的剪辑和/或使用 MediaPlayer。

于 2012-09-10T09:36:23.487 回答