我正在尝试为我的应用程序播放背景声音,我使用SoundPool
类,我的问题是,只有当我设置 循环时声音才能正常播放/ strong>带零值的参数,但它不适用于任何其他值。
我的初始化代码是:
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)以外的任何值都不起作用(没有输出声音)?
答案 0 :(得分:1)
文件大小可能太大而无法按照此处报告的那样进行循环:http://www.talkandroid.com/android-forums/android-development-answers-tutorials-code-snippets/5132-soundpool-setloop-possible-bug.html
一般来说SoundPool的文件大小看起来相当大,所以也许应该将声音片段切割成较小的片段和/或使用的MediaPlayer。